排序算法的总结
插入类排序:
1.直接插入类排序:将第i个记录插入到前面i-1个已经排好序的记录中(稳定的排序方法)
2.折半插入类排序法:时间复杂度为O(n2)。
3.表插入排序:采用链式存储结构进行排序的方法 时间复杂度O(n2)。
选择类排序:
1.简单选择排序:所需要移动的次数较少。时间复杂度O(n2)。
2.树型选择排序:也称锦标赛排序。基本思想:先把待排序的n个记录的关键字两两进行比较,取出较小者。再在n/2个比较者中,采用相同的方法比较选出每两个中的较小者,如此反复,直到选出最小的关键字记录为止 时间复杂度:O(nlog2n).
3.堆排序:对树型选择排序的进一步改进。如果这棵完全二叉树中任意结点的关键字大于或者等于其左孩子和右孩子的关键字,对应堆为小根堆。时间复杂度:O(nlog2n)。
归并排序:将两个或两个以上有序表合并成一个新的有序表。是一种稳定的排序方法。时间复杂度为O(nlog2n),空间复杂度:O(n)。
分配类排序:
1.多关键字排序:高位优先
2.链式基数排序:低位优先
1.直接插入类排序:将第i个记录插入到前面i-1个已经排好序的记录中(稳定的排序方法)
2.折半插入类排序法:时间复杂度为O(n2)。
3.表插入排序:采用链式存储结构进行排序的方法 时间复杂度O(n2)。
选择类排序:
1.简单选择排序:所需要移动的次数较少。时间复杂度O(n2)。
2.树型选择排序:也称锦标赛排序。基本思想:先把待排序的n个记录的关键字两两进行比较,取出较小者。再在n/2个比较者中,采用相同的方法比较选出每两个中的较小者,如此反复,直到选出最小的关键字记录为止 时间复杂度:O(nlog2n).
3.堆排序:对树型选择排序的进一步改进。如果这棵完全二叉树中任意结点的关键字大于或者等于其左孩子和右孩子的关键字,对应堆为小根堆。时间复杂度:O(nlog2n)。
归并排序:将两个或两个以上有序表合并成一个新的有序表。是一种稳定的排序方法。时间复杂度为O(nlog2n),空间复杂度:O(n)。
分配类排序:
1.多关键字排序:高位优先
2.链式基数排序:低位优先