交换与选择类排序

Posted keepz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了交换与选择类排序相关的知识,希望对你有一定的参考价值。

各种排序算法所需辅助空间
1、 所有的简单排序方法(包括:直接插入、起泡和简单选择)和堆排序的空间复杂度为O(1);

2、 快速排序为O(logn ),为栈所需的辅助空间;

3、 归并排序所需辅助空间最多,其空间复杂度为O(n );

4、链式基数排序需附设队列首尾指针,则空间复杂度为O(rd )。

5、直接插入排序:比较次数 最少n-1次;最多(n-1)(n+2)/2
移动次数 最少0; 最多(n-1)(n+4)/2
使用一个辅助存储空间,是稳定的排序;

6、折半插入排序:比较次数 最少与最多同,都是n*log2n(其中2为底,下边表示同),
移动次数 最少0,最多时间复杂度为O(n2);(n的平方,以下也如此表示);
使用一个辅助存储空间,是稳定的排序;

7、冒泡排序: 比较最少为:n-1次,最多时间复杂度表示为o(n2);
移动次数最少为0,最多时间复杂度表示为O(n2);
使用一个辅存空间,是稳定的排序;

8、简单选择排序: 比较次数没有多少之分,均是n(n-1)/2;
移动次数最少为0,最多为3(n-1);
使用一个辅存空间,是稳定的排序;

9、快速排序:比较和移动次数最少时间复杂度表示为O(n*log2n);
比较和移动次数最多的时间复杂度表示为O(n2);
使用的辅助存储空间最少为log2n,最多为n的平方;是不稳定的排序;

10、 堆排序: 比较和移动次数没有好坏之分,都是O(n*log2n);
使用一个辅存空间,是不稳定的排序;

11、2-路归并排序:比较和移动次数没有好坏之分,都是O(n*log2n);
需要n个辅助存储空间,是稳定的排序;

以上是关于交换与选择类排序的主要内容,如果未能解决你的问题,请参考以下文章

二级C语言排序技术2

选择排序

第八章小结

C语言中选择排序法具体是怎样的?

算法 之 简单选择排序法

排序算法之选择排序类