排序算法系列:选择排序算法
生活随笔
收集整理的這篇文章主要介紹了
排序算法系列:选择排序算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
概述
這是一個相對簡單的排序算法。為什么這么說呢?因為不需要什么思考,你就可以掌握并使用它。
版權說明
著作權歸作者所有。
商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
本文作者:Q-WHai
發表日期: 2016年5月24日
本文鏈接:https://qwhai.blog.csdn.net/article/details/51491810
來源:CSDN
更多內容:分類 >> 算法與數學
目錄
文章目錄
- 概述
- 版權說明
- 目錄
- @[toc]
- 算法原理
- 算法步驟
- 算法實現
- 算法復雜度
- Ref
- Github源碼下載
- 征集
- @[toc]
算法原理
選擇排序算法也需要將一個完整的序列切分成兩個部分,一個部分有序,一個部分無序。這一點它和插入排序是一致的。在前面我們說插入排序是將第 [i + 1] 個元素插入到第一部分的有序序列中,如果你還有印象的話。那么在選擇排序中則是第 j 個元素(i < j <= n),插入到第 i 個位置。
下面這幅圖可以幫助你更好地理解這一點(當然你可以完全不需要圖解的幫助)。
算法步驟
算法實現
/** 排序算法的核心模塊* * @param array* 待排序數組*/private void sortCore(int[] array) {int arraySize = array.length;for (int i = 0; i < arraySize; i++) {int minValue = Integer.MAX_VALUE;int minIndex = 0;for (int j = i; j < arraySize; j++) {if (minValue > array[j]) {minValue = array[j];minIndex = j;}}ArrayUtils.swap(array, minIndex, i);}}算法復雜度
| 排序方法 | 時間復雜度 | 空間復雜度 | 穩定性 | 復雜性 | ||
| 平均情況 | 最壞情況 | 最好情況 | ||||
| 選擇排序 | O($n^{2}$) | O($n^{2}$) | O($n^{2}$) | O(n) | 穩定 | 簡單 |
Ref
- 《大話數據結構》
Github源碼下載
- https://github.com/qwhai/algorithms-sort
征集
如果你也需要使用ProcessOn這款在線繪圖工具,可以使用如下邀請鏈接進行注冊:
https://www.processon.com/i/56205c2ee4b0f6ed10838a6d
總結
以上是生活随笔為你收集整理的排序算法系列:选择排序算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ZooKeeper 3.4.5 分布式环
- 下一篇: HBase 0.98 分布式集群安装详解