排序算法系列:选择排序算法
生活随笔
收集整理的这篇文章主要介绍了
排序算法系列:选择排序算法
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
概述
这是一个相对简单的排序算法。为什么这么说呢?因为不需要什么思考,你就可以掌握并使用它。
版权说明
著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
本文作者: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 分布式集群安装详解