排序 選擇排序(Selection sort)

2021-10-02 13:58:13 字數 916 閱讀 9461

第一次從待排序的資料元素中選出最小(或最大)的乙個元素,存放在序列的起始位置,然後再從剩餘的未排序元素中尋找到最小(大)元素,然後放到已排序的序列的末尾。以此類推,直到全部待排序的資料元素的個數為零。

假設乙個數列為,對該數列進行排序。整個排序過程入下圖所示:

說明:上圖為未優化的選擇排序示意圖。

說明:此**為優化後的選擇排序,每趟只交換一次。

選擇排序的核心是,在每趟比較中,找到本趟中最小的元素放在本趟比較的第1個位置,所以選擇排序的每趟比較只需要交換一次即可,只要找到本趟比較中最小的元素和本趟比較中第1位置的元素交換即可。

不穩定排序方法。

inline void swap(int &a, int &b) 

void selection_sort(int nums, int len)

for (int i=0; inum[j])

}swap(nums, i, minindex);}}

def selection_sort(list2):

for i in range(0, len (list2)-1):

min_ = i

for j in range(i + 1, len(list2)):

if list2[j] < list2[min_]:

min_ = j

list2[i], list2[min_] = list2[min_], list2[i] # swap

排序 選擇排序 選擇排序 堆排序

寫在前面 上傳github交換排序選擇排序 堆排序 選擇排序 顧名思義,我們就可以猜到,它是原則合適的元素放到合適的位置 從圖中,我們可以得到 1.用第乙個元素,和其他所有的元素進行比較,找出最小的,然後進行交換 2.然後進行,資料的遞增 3.直到資料全部有序 void selectsort int...

排序 選擇排序(直接選擇排序 堆排序)

選擇排序 selection sort 的基本思想是 每一趟從待排序的記錄中選出關鍵字最小的記錄,順序放在已排好序的子檔案的最後,直到全部記錄排序完畢。常用的選擇排序方法有 直接選擇排序 和堆排序。直接選擇排序 straight selection sort 1 直接選擇排序的基本思想 n個記錄的檔...

排序2 選擇排序 選擇排序 堆排序

選擇排序,依次找到資料集n n 1 n 2 中比它大 小的最大 最小者,最終達到全部資料有序。1 選擇排序 直接的依次找到資料集合n n 1 n 2.的最大 最小者形成排序,非常好理解。選擇排序可能是和氣泡排序一樣,最直觀能想到的排序方法。顯然選擇排序和氣泡排序一樣,無所謂最好 最壞 平均,選擇排序...