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

2021-08-04 09:27:22 字數 814 閱讀 6993

寫在前面

**上傳github交換排序選擇排序&&堆排序

選擇排序:顧名思義,我們就可以猜到,它是原則合適的元素放到合適的位置;

從圖中,我們可以得到:

1. 用第乙個元素,和其他所有的元素進行比較,找出最小的,然後進行交換;

2. 然後進行,資料的遞增;

3. 直到資料全部有序;

void selectsort(int* array, size_t size)

swap(array[i], array[min]);}}

前面我在學習堆的時候,已經說過了堆的相關知識堆的建立,插入,刪除;

所以,我們直接進入堆排序:

從圖中我們可以看到:

1. 用所給的數字建立乙個堆;

2. 用最後乙個元素和第乙個元素進行交換,然後在調整堆為乙個大堆;

3. 重複2中的動作;

4. 直至資料全部有序;

void adjustdown(int *array, size_t size, size_t pos)

}void heapsort(int *array, int size)

for (int i = size - 1; i > 0; i--)

}

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

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

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

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

選擇排序(選擇排序和堆排序)

選擇排序 從序列中依次選出最小值 或者最大值 放在一側。這樣的排序叫選擇排序。這裡我們對選擇排序進行優化,一次就選出當前序列的最大值和最小值。分別放在最右端和最左端。然後left right 使得序列範圍縮小,再進行選擇最大和最小值。void selectsort int a,int n 3選擇排序...