常用排序算法

排序:
       分为内部排序和外部排序

    •   内部排序:只在内存中进行
    •   外部排序:内存和外存结合,数据量比较大的情况下。

     排序稳定:相等的两个数值排序结束后相对位置不变

内部排序:
        插入排序:第k个插入时,和前k-1个数进行比较,放在正确的位置

    •   直接插入排序 一次直接插入
    • 二分插入排序:利用二分法寻找第k个插入元素的位置

              希尔排序:利用增量将待排序数组分组


             选择排序:从待排序数组中选取max/min逐次放大最大位置

    • 简单选择排序:选择排序的原始策略

 

       堆排序:优化策略:局部再优,利用平衡二叉树,简化每次选取数据的优化
       交换排序:
            与选择排序的不同,发现比较就交换,每次扫描过程有不定次交换过程而选择排序只有一次
            冒泡:优化临近的选择排序
       快排:
            优化策略:简化交换过程,将数据抽象成两部分,一部分比游标小,一部分比游标大,迭代排序
       归并排序:
            将两个有序队列合并成一个有序队列,依次向上合并。
        和快排区别:
            快排是从总体到个体
            归并是从个体到总体
      桶排序:
            维护一个最小max-min最大长度的数组,扫描放入,得到不是默认值的数据排序数组。
      基数排序:维护一个索引队列,队列的每个元素也是一个索引链表
            第一层 个位排序队列
            第二层 十位排序队列
            第三层 百位排序队列
            ...
            第n位,最大位排序队列
            每个队列按照大小排序
   总结:

posted @ 2016-08-17 09:45  moye  阅读(131)  评论(0编辑  收藏  举报