概述
選擇排序是一種簡單直觀的排序算法.
它的工作原理是每一次從待排序的數據元素中選出最小(或最大)的一個元素, 存放在序列的起始位置,直到全部待排序的數據元素排完. 選擇排序是不穩定的排序方法.
選擇排序是從序列中選出最大或最小數, 將其放到最前面, 然後繼續選擇, 故而叫做選擇排序, 個人理解.
以升序為例, 選擇排序執行步驟如下:
- 暫定第一個元素為最小元素, 往後遍歷, 逐個與最小元素比較, 找到最小元素, 若發現最小者, 與先前的"最小元素"交換位置. 達到更新最小元素的目的.
- 一趟遍歷完成後, 能確保剛剛完成的這一趟遍歷中, 最的小元素已經放置在前方了. 然後縮小排序範圍, 新一趟排序從數組的第二個元素開始
- 在新一輪排序中重複第1、2步驟, 直到範圍不能縮小為止, 排序完成
其時間空間複雜度如下:
應該不難理解, 直接上代碼了.
Java代碼實現
代碼也很簡單, 不做過多解釋了, 各位上眼.
閱讀更多 學習編程 的文章