zoukankan      html  css  js  c++  java
  • c语言数据结构学习心得——排序

    排序:将无序的序列重新排列为有序的序列。

    插入类排序

    插入类排序:在一个有序的序列中,插入一个新的关键字,知道所有的关键字都插入形成一个有序的序列。

    直接插入排序:首先以一个元素为有序的序列,然后将后面的元素依次插入到有序的序列中合适的位置直到所有的元素都插入有序序列。

    void InsertSort(ElemType A[],int n){
       int i,j;
       for(i=2;i<=n;i++)
          if(A[i].key<A[i-1].key){
             A[0]=A[i];
             for(j=i-1;A[0].key<A[j].key;--j)
                A[j+1]=A[j];
             A[i+1]=A[0];
       }
    }   

    折半插入类排序:操作如折半查找。

    希尔排序(缩小增量排序):本质上是插入类排序,只不过是待排序序列分成几个子序列(按照一定增量),再分别对这几个子序列直接插入排序。

    优势:每一轮都会使整个序列变得越来越有序,最后一轮当增量为1时,整个序列几乎都是有序的,所以直接进行插入排序会提高排序的效率。但是不稳定。

  • 相关阅读:
    rsync同步公网yum源搭建本地yum仓库
    为smokeping添加日志开启debug
    python中if __name__ == '__main__':的作用
    使用telnet访问百度
    RRDtool绘制lvs连接数图形
    HTML表格
    ip netns
    redis动态扩展内存
    route命令
    设置nginx日志滚动
  • 原文地址:https://www.cnblogs.com/suprechen/p/10633334.html
Copyright © 2011-2022 走看看