1. 程式人生 > >c語言數據結構學習心得——排序

c語言數據結構學習心得——排序

依次 語言 pre code 學習心得 結構 直接 type 心得

排序:將無序的序列重新排列為有序的序列。

插入類排序

插入類排序:在一個有序的序列中,插入一個新的關鍵字,知道所有的關鍵字都插入形成一個有序的序列。

直接插入排序:首先以一個元素為有序的序列,然後將後面的元素依次插入到有序的序列中合適的位置直到所有的元素都插入有序序列。

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時,整個序列幾乎都是有序的,所以直接進行插入排序會提高排序的效率。但是不穩定。

c語言數據結構學習心得——排序