zoukankan      html  css  js  c++  java
  • 交换与选择类排序

    各种排序算法所需辅助空间
    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个辅助存储空间,是稳定的排序;

  • 相关阅读:
    KVC该机制
    JS多语种方式
    面试经典(1)---翻转字的顺序在一个句子
    正确Linux新手很实用20命令
    代码添加背景音乐的日记
    什么是比特币(Bitcoin)?
    李开复:该算法的重要性
    javascript推断的浏览器类型
    libyuv编
    Linux下将UTF8编码批量转换成GB2312编码的方法
  • 原文地址:https://www.cnblogs.com/KeepZ/p/11873451.html
Copyright © 2011-2022 走看看