簡單選擇排序的幾種實現和細節

2021-08-11 18:00:25 字數 853 閱讀 9259

選擇排序是每次遍歷整個序列,選出其中最小的放在已排序部分的最後,所以每次排序可以讓待排序區域的數量減少乙個。

所以實現也無非就是while迴圈和for迴圈,在交換最小值的細節上可以有兩種處理方式。

這種方式在每一次遍歷過程中,用乙個變數儲存最小值的下標,在遇到更小的值時,替換這個下標,在一趟比較結束後,交換該下標上的值和未排序序列的第乙個值(已排序序列的末尾),即把最小值交換過去。

while迴圈:

function

selectsort1

(arr)

}temp = arr[minindex];

arr[minindex] = arr[start];

arr[start] = temp;

start++;

}}

for迴圈:

function

selectsort2

(arr)

}temp = arr[minindex];

arr[minindex] = arr[i];

arr[i] = temp;

}}

這種實現方式不需要儲存下標,在遇到更小值時直接把該值交換到未排序序列的第一位,在一趟比較過程中可能有多次交換。

while迴圈

function

selectsort4

(arr)

}start++;

}}

for迴圈

function

selectsort3

(arr) }}

}

氣泡排序和簡單選擇排序實現

氣泡排序演算法的運作如下 從後往前 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較...

簡單選擇排序 簡單選擇排序詳解

n個記錄的檔案的直接選擇排序可經過n 1趟直接選擇排序得到有序結果 初始狀態 無序區為r 1.n 有序區為空。第1趟排序 在無序區r 1.n 中選出關鍵字最小的記錄r k 將它與無序區的第1個記錄r 1 交換,使r 1.1 和r 2.n 分別變為記錄個數增加1個的新有序區和記錄個數減少1個的新無序區...

C 實現簡單選擇排序

簡單選擇排序的思想 通過n in i 次關鍵字間的比較,從n i 1 n i 1 個記錄中選出關鍵字最小的記錄,並和第i 1 i n i 1 i n 個記錄交換之。這句話比較晦澀,我們可以通過乙個例子來說明。舉例說明 對於序列為的序列 第一步,記錄為0的關鍵字為9,與記錄為0之後的所有記錄的關鍵字相...