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