排序算法
2016-07-23 14:29
197 查看
排序算法原理、复杂度、稳定性的简单记录。先转一篇排序算法稳定性时间复杂度小结。
快排不稳定发生在pivot和最后一个比它小的元素(设一个指针指向)交换时刻,再设一个指针遍历从pivot下一元素开始的所有元素。4,2,1,7,13为例,第一次1,2,4,7,13.
归并排序是稳定的,合并过程中我们可以保证如果两个当前元素相等时,我们把处在前面的序列的元素保存在结果序列的前面,这样就保证了稳定性。
堆排序是不稳定的,发生在父节点选择元素的时候。当为n/2-1, n/2-2, ...1这些个父节点选择元素时,就会破坏稳定性。有可能第n/2个父节点交换把后面一个元素交换过去了,而第n/2-1个父节点把后面一个相同的元素没有交换,那么这2个相同的元素之间的稳定性就被破坏了。
快排不稳定发生在pivot和最后一个比它小的元素(设一个指针指向)交换时刻,再设一个指针遍历从pivot下一元素开始的所有元素。4,2,1,7,13为例,第一次1,2,4,7,13.
归并排序是稳定的,合并过程中我们可以保证如果两个当前元素相等时,我们把处在前面的序列的元素保存在结果序列的前面,这样就保证了稳定性。
堆排序是不稳定的,发生在父节点选择元素的时候。当为n/2-1, n/2-2, ...1这些个父节点选择元素时,就会破坏稳定性。有可能第n/2个父节点交换把后面一个元素交换过去了,而第n/2-1个父节点把后面一个相同的元素没有交换,那么这2个相同的元素之间的稳定性就被破坏了。
相关文章推荐
- 资源在Windows编程中的应用
- Codeforces Round #364 (Div. 2) A
- AbstractAxis QML 类型翻译
- 10Mbps以太网的帧长度
- SQL练习题
- JAVA设计模式---模板方法
- leetcode_c++:栈: Basic Calculator(224)
- Ubuntu 14.04 LTS + Qt 5.2.1 源码编译搭建环境
- 棋盘游戏(三子棋)
- ViewGroup.LayoutParams
- 嵌入式 Linux下永久生效环境变量bashrc
- 多媒体文件格式之FLV
- 第一周学习笔记4
- poj 1088 / 3624两道简单DP
- iOS笔记 页面切换 CATransition Animation动画
- webpack知识梳理
- cocos2dx.3.x之重要类分析(1)——Ref
- Ubuntu解压缩zip,tar,tar.gz,tar.bz2
- vim编辑器重新打开文本,回到上次编辑的位置
- ContentProvider 操作小实例 (了解)