常見排序演算法 選擇排序演算法

2021-09-14 08:34:59 字數 1353 閱讀 3945

原理:

1.選擇排序需要定義三個變數,i表示外層迴圈即for(i=0;i

2.當i=0時,min初始值為i,此時min=0。內層迴圈j=i+1開始到length-1處結束。當j=1時,比較a[j]與a[min]。如果a[j] < a[min]。則記錄最小值索引即min=j。即if (a[j] < a[min]) 。當j=1時,因為a[min]>a[j]此時min變為1。當j=length-1時,因為a[min]>a[j]此時min變為length-1。

3.內層迴圈完畢後,min儲存了陣列中最小值的索引。此時交換a[i]與a[min]。即i=0處的元素為最小的值。

4.第一輪迴圈結束後,a[0]處的值存放最小值。

5.i=1時,min初始為i,j從2開始到length-1處,依次與a[min]進行比較尋找最小值的索引 。a[1]=5,a[2]=4迴圈結束時min為2。此時交換兩個元素,即a[1]=4,a[2]=5;

6.當i=lenth-2時,min初始為i。比較a[min]與a[j]。此時a[min]**:

/*選擇排序:

從未排序的數中找乙個最小的數將它放在已排序列表的最後

*/void selectsort(int list, int n)

} swap(list[i], list[min]);

}} int main()

; selectsort(list, sizeof(list) / sizeof(int));

for (int i = 0; i < sizeof(list) / sizeof(int); i++)

return 0;

}

選擇排序是一種不穩定的排序方法,最好、最壞、平均情況下的時間複雜度:

常見的排序演算法 選擇排序

選擇排序 基本思想 每一趟在後面n i個待排序的資料元素集合中選擇出關鍵碼最小的資料元素,作為有序元素序列的第i個元素。待 到第n 2趟做完,待排序元素集合中只剩下乙個元素,排序結束。直接選擇排序 如下 void swop int a,int b void select int array,int ...

常見排序演算法 直接選擇排序

直接選擇排序是常用選擇排序演算法之一,演算法簡單明瞭,但效能略差。直接選擇排序演算法實現的思路比較簡單,利用雙層迴圈遍歷的方式篩選出最大 或最小 值,並放置到對應的位置即可。陣列 a n 第一次排序 將第乙個元素值作為最小元素,遍歷後面的陣列,如果當前元素小於最小元素,則交換他們,直到遍歷完成,最小...

常見演算法之 選擇排序

選擇排序 1.原理 是一種簡單直觀的排序演算法。原理是,將後面的元素最小元素乙個個取出來然後按順序放置。2.步驟 1.在未排序序列中找到最小元素,存放到排序序列的起始位置。2.在從剩餘未排序元素中繼續尋找最小元素,然後放到已排序列的末尾。3.重複第二步,直到所有元素都排列完畢。3.def selec...