排序 選擇排序

2021-09-24 19:38:48 字數 591 閱讀 2181

基本思想

每一次從待排序的資料元素中選出最小或最大的乙個元素,存放在序列的起始位置,直到全部待排序的資料元素排完。

直接選擇排序:

在元素集合arr[i]–arr[n-1]中選擇關鍵碼最小和最大的資料元素,將最小的元素與這組元素中的第乙個元素交換,最大的元素與這組元素中的最後乙個元素交換,在剩餘的arr[i]–arr[n-2](arr[i+1]–arr[n-1])集合中,重複上述步驟,直到序列有序。(公升序)

具體**:

void swap(int*p1, int* p2)

void selectsort(int* a, int n)

swap(&a[begin], &a[min]);

if (begin == max)

swap(&a[end], &a[max]);

++begin;

--end;

}}

直接選擇排序的特性總結:

直接選擇排序思考非常好理解,但是效率不是很好。實際中很少使用

時間複雜度:o(n^2)

空間複雜度:o(1)

穩定性:不穩定

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

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