每周学习日志(八)

简单排序方法:

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趟比较,直到完成。

堆排序:需要一个记录大小的辅助空间,将向量中的数据看成是一个完全二叉树,利用双亲结点和孩子结点之间的内在关系,来选择关键字最小的记录。

归并排序:将两个及两个以上的有序表合并成一个新的有序表。

基数排序:根据低位优先的规则进行排序,比如数字的个十百依次对待排序列排序,直到有序。有分配、收集这两种基本操作。

原文地址:https://www.cnblogs.com/wananouo/p/13143737.html