本文讲数组的排序,排序复杂度分为O(n²)和O(nlogn)。
其中:O(n²)的算法有:
插入排序:维护已经排好序的部分,插入需要重新维护(交换内部位置)
选择排序:内部循环标记出位置,进行交换,只交换一次。
O(nlogn)的算法有:
归并排序:维护左右两部分分别有序,然后使用merge函数合并为整体有序,需要借助辅助数组空间。
快排:挑选一个元素作为标点,把数组划分为小于和大于的区域;需注意标点的选取(如果取第0个,在有序情况下会退化,栈溢出);相等元素处理(如果全部相等,算法退化,栈溢出,二路快排,三路快排)
排序
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 本文有七千字,阅读大约需要占用你10分钟时间。 好吧。。随便写的,我也不知道会花多久看完。因为写的比较烂,而且只是...
- 从广义上来讲:数据结构就是一组数据的存储结构 , 算法就是操作数据的方法数据结构是为算法服务的,算法是要作用在特定...
- 以下文章来源于后端技术指南针 ,作者后端技术指南针 1.写在前面 今天一起来学习一下:快速排序及其优化 和 STL...