# 排序的基本概念
# 排序的定义
排序是将一组无序的记录序列调整为有序的记录序列
# 排序的稳定性
如果一组记录中,存在多个具有相同的关键字,经过排序后,这些记录的相对次序保持不变,则称这种排序算法是稳定的;否则称为不稳定的
例如:有一组记录的关键字为:[(a, 3), (b, 2), (c, 3), (d, 1)]
如果按照关键字升序排序后,得到的结果为:[(d, 1), (b, 2), (a, 3), (c, 3)] a=3,c=3 排序后a始终在c前面,所以是稳定的
如果按照关键字升序排序后,得到的结果为:[(d, 1), (b, 2), (c, 3), (a, 3)] a=3,c=3 排序后c在a前面,所以是不稳定的
# 内排序与外排序
- 内排序:待排序的所有记录全部放置在内存中进行排序(关注如何使算法时间、空间复杂度更低)
- 外排序:待排序的记录的个数很大,不能同时放置在内存中,需要借助外存进行排序(关注如何减少磁盘I/O次数)
# 排序的分类
- 十大排序算法总结
- 用HTML5实现的各种排序算法的动画比较
http://www.webhek.com/post/comparison-sort.html (opens new window)