排序算法之選擇排序

概述

選擇排序是一種簡單直觀的排序算法.

它的工作原理是每一次從待排序的數據元素中選出最小(或最大)的一個元素, 存放在序列的起始位置,直到全部待排序的數據元素排完. 選擇排序是不穩定的排序方法.

選擇排序是從序列中選出最大或最小數, 將其放到最前面, 然後繼續選擇, 故而叫做選擇排序, 個人理解.

以升序為例, 選擇排序執行步驟如下:

  1. 暫定第一個元素為最小元素, 往後遍歷, 逐個與最小元素比較, 找到最小元素, 若發現最小者, 與先前的"最小元素"交換位置. 達到更新最小元素的目的.
  2. 一趟遍歷完成後, 能確保剛剛完成的這一趟遍歷中, 最的小元素已經放置在前方了. 然後縮小排序範圍, 新一趟排序從數組的第二個元素開始
  3. 在新一輪排序中重複第1、2步驟, 直到範圍不能縮小為止, 排序完成
排序算法之選擇排序

形象

其時間空間複雜度如下:

排序算法之選擇排序

應該不難理解, 直接上代碼了.

Java代碼實現

排序算法之選擇排序

代碼也很簡單, 不做過多解釋了, 各位上眼.


分享到:


相關文章: