排序算法就是如何使得记录按照要求排列的方法。排序算法可以分为两类,线性时间非比较类排序和非线性时间比较类排序。
其中线性时间非比较类排序包括有计数排序、桶排序、基础排序。
非线性时间比较类排序包括有交换排序(冒泡排序、快速排序)、插入排序(直接插入排序、希尔排序)、选择排序(简单选择排序、堆排序)、归并排序(二路归并排序、夺路归并排序)。
排序算法比较基础,但是设计到很多计算机科学的想法,如下:
1、比较和非比较的策略
2、迭代和递归的实现
3、分而治之思想
4、最佳、最差、平均情况时间复杂度分析
5、随机算法