排序 選擇排序

2021-08-20 01:55:36 字數 1227 閱讀 9447

基本思想:在資料中,每一趟(第i趟,i = 0,1,2,3…,n-2)在後面n-i個待排序的資料元素集合中選出關鍵碼最小的資料元素,作為有序元素序列的第i個元素,待到第n-2趟做完,待排序元素集合只剩下1個元素,排序結束。

直接選擇排序:得到乙個待排序的元素集合,我們先預設第乙個元素為最小元素,用min標記起來。在待排序元素集合中,依次比較大小,如果比min標記的元素小,就把min標記到小的哪乙個元素。直到元素比完,找到最小的元素,然後與第乙個元素交換位置。

空間複雜度o(1) ;

時間複雜度o(n*n) ; 要排n個元素,每次比較n-1次,找到min,要n*(n-1)次才能排位

適用場景:資料規模小(n比較小)

穩定性:不穩定

直接排序優化:

一次找出min,max,把min,max分別與第left個元素,第right個元素交換,left >= right 時,排序結束。

void selectsort_op(int

*array, int

size)

std:swap(array[max], array[right]);

if (min == right) //考慮最小值在right的情況

min = max;

swap(array[min], array[left]);

left++;

right--;}}

要排n個元素,排完需要經常 n(n-1)/2 次

時間複雜度:o(n*n)

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

寫在前面 上傳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.的最大 最小者形成排序,非常好理解。選擇排序可能是和氣泡排序一樣,最直觀能想到的排序方法。顯然選擇排序和氣泡排序一樣,無所謂最好 最壞 平均,選擇排序...