简单排序方法:
1、直接插入排序方法。
2、冒泡排序法。
3、简单选择排序方法。
其他排序方法:
1、快速排序法。
2、堆排序法。
3、归并排序法。
方法 平均时间复杂度 最坏时间复杂度 辅助存储空间
简单排序 O(n^2) O(n^2) O(1)
快速排序 O(nlogn) O(n^2) O(logn)
堆排序 O(nlogn) O(nlogn) O(1)
归并排序 O(nlogn) O(nlogn) O(n)
结论:
1、简单排序一般只用于N值较小的情况。
2、归并排序使用于N值较大的情况。
3、快速排序是排序方法中最好、最快的方法。
直接插入排序:将第i个记录插入到前面i-1个已排好序的记录中。
折半插入排序:将折半查找用于在有序记录r[1……i-1]中确定应插入的位置。
希尔排序:利用直接插入排序的最佳性质,将待排关键字序列分为子序列,对子序列直接插入排序,使排好序,多次调整,知道基本有序再对序列进行直接插入排序。
冒泡排序:反复扫描待排序列,过程中顺次比较相邻元素大小,若逆序则交换位置。
快速排序:以某一元素v作为基准,将待排序列分成前后两段(前段小于v,后端大于/等于v),再分别以前段、后段作快速排序。
简单选择排序:第i趟简单选择排序是指通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录进行交换,共需要i-1趟比较,直到完成。
堆排序:需要一个记录大小的辅助空间,将向量中的数据看成是一个完全二叉树,利用双亲结点和孩子结点之间的内在关系,来选择关键字最小的记录。
归并排序:将两个及两个以上的有序表合并成一个新的有序表。
基数排序:根据低位优先的规则进行排序,比如数字的个十百依次对待排序列排序,直到有序。有分配、收集这两种基本操作。