常見排序演算法總結 5 選擇排序

2021-10-03 11:51:29 字數 1080 閱讀 5975

5、選擇排序:將陣列中待排序的元素中最小(大)的元素取出,放在陣列中已排序的元素序列的末尾,直至陣列中沒有待排序的元素

舉例:

分析:對於n個元素的陣列,進行了(n-1)次選擇,每次選擇進行了(n-1)~1次比較,平均每次選擇了n/2次,一共比較了n(n-1)/2次

**邏輯:首先做乙個i = 0 ; i < n的迴圈a,代表(n-1)次的選擇。然後做乙個j = (i+1) ; j < n 的迴圈b,代表每次選擇的比較次數,在迴圈b中記錄最小(大)的元素位置k。最後將陣列中i位置的元素和k位置的元素互換位置

**示例(**工具-as):

public

static

void

main

(string args)

}if(i != k)

}log

(list,

"排序陣列:");

//列印陣列

}

/**

* 列印陣列

* @param list 要列印的陣列

* @param string 列印字首

*/private

static

void

log(arraylist

list,string string)

else}if

(string == null)

else

}

結果一覽:

結果分析:選擇排序不存在最佳和最差的排序順序,無論待排序陣列的序列情況,都要進行n(n-1)/2次比較。而且在選擇互換位置過程中,會出現相同元素的先後順序互換的情況(如:5,3,2,5,1在第一次選擇時變成1,3,2,5,5。兩個5的先後順序改變了),所以選擇排序是一種不穩定的排序演算法。

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

原理 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時...

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

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

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

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