選擇排序是每次遍歷整個序列,選出其中最小的放在已排序部分的最後,所以每次排序可以讓待排序區域的數量減少乙個。
所以實現也無非就是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之後的所有記錄的關鍵字相...