排序學習筆記

2021-05-25 10:49:08 字數 601 閱讀 2049

以前對直接選擇排序和簡單插入排序總是混淆,今天分辨一下:

直接選擇:將index為0 的值記為large,遍歷比較從1到n的元素,選出最大或最小的那位,和0比較,看是否交換,然後迴圈繼續

index為1,直到結束。

for(index=0;indexlarge=x[index];

index=index;

for(j=n-1;jlarge=x[j]>x[j-1]?x[j]:x[j-1];

index=x[j]>x[j-1]?j:j-1;

x[index]=x[i];

x[index]=large;

簡單插入排序:從陣列的0 ,1開始出發

對比兩個的大小,排序,往後移乙個位置,將新的元素與已排序的進行比較,然後插進去。也就是說拿乙個未知的值與已排序的陣列列進行比較,而直接選擇的不同是,不需要去比較已排序的陣列,而是比較未知的資料,選擇最大的。

for(int i=1;ihold=x[i];

for(int k=i-1;(k<0)&&(x[k]>x[i]);k--){

list[k+1]=list[k];

list[k+1]=hold;

這兩者的排序效率均比氣泡排序高

排序學習筆記

參考書籍 資料結構 c 版 一 交換排序 小到大 1 氣泡排序 每次把陣列分成左邊無序號區域,和右邊有序區域。public static void sortbubbler 2 快速排序 每次選擇乙個中間的值,再對中間以前的和中間以後的再次遞迴,在某個中間前只有乙個資料時退出!比起冒泡演算法的優勢是每...

排序學習筆記1

資料結構也快學完了,排序算的上是很常用的一種演算法,也體現了演算法設計中的一些常用的思路。演算法設計中乙個很重要的思路就是整體和區域性。快速演算法是,分治演算法更是,其實插入排序和選擇排序也外乎於此。折半查詢就是從整體到區域性的乙個下放過程來加以改進簡單插入排序的。shell演算法更是基於此。且sh...

快速排序學習筆記

學習資料出處 白話經典演算法系列之六 快速排序 快速搞定 快速排序採用分治策略,其基本思想 1 從數列中選乙個元素x作為基準數 2 分割槽過程,把不小於x的元素放到x的右邊,小於x的元素放到x的左邊 3 再對左右區間重複進行分割槽操作,直到各區間只有乙個數 morewindows總結的 挖坑填數 分...