選擇排序,堆排序

2021-10-23 11:08:34 字數 913 閱讀 3968

選擇排序:

選擇排序法以選擇和交換來實現排序。首先在未排序序列中找到最小(大)資料,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)資料,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完成。

選擇排序法,對n 個資料進行排序時,無論資料是否有序,都要進行n-1補中間過程。平均速度為o(n^2),最壞情況o(n^2)效率不是很高。

void

select_sort

(int arr,

int len)

} tmp = arr[i]

; arr[i]

= arr[min]

; arr[min]

= tmp;}}

intmain()

;int len =

sizeof

(arr)

/sizeof

(arr[0]

);for(i =

0; i < len;

++i)

printf

("\n");

select_sort

(arr, len)

;for

(i =

0; i < len;

++i)

system

("pause");

return0;

}

結果:

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

空間複雜度:o(1)

堆排序:

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

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

選擇排序 堆排序

選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理是每一次從待排序的資料元素中選出最小 或最大 的乙個元素,存放在序列的起始位置,直到全部待排序的資料元素排完。選擇排序是不穩定的排序方法 比如序列 5,5,3 第一次就將第乙個 5 與 3 交換,導致第乙個5挪動到第二個...

選擇排序 堆排序

堆排序 堆排序分為兩個過程 1 將原來無序的數列,轉化成堆序列 建初識堆的過程 2 輸出堆頂元素並調整建新堆的過程 資料結構偽 typeof sqlist heaptype void heapadjuisti heaptype h,int s int m for i h.length i 1 i c...