【算法基础】选择排序
来源:互联网 发布:冰上的尤里知乎 编辑:程序博客网 时间:2024/05/18 22:45
选择排序的思想是,每轮从数组Array[N]中判断得出最小的值排在前面,数组最多在循环N-1轮之后有序。
例如{3,2,4,5,1}
第一轮,3作为key,与后面4个数字比较
2比3小,成为新的最小值。
随后继续往后对比,2比4、5小,最后1比2小,因此最小值变成1,将1和本轮的key(3)位置交换。
确定本轮最小值为1,1和3位置交换,进入下一轮
结果:{1,2,4,5,3}
第二轮,2作为key,与后面3个数字比较
2比4、5、3都要小,因此本轮数组元素位置不变
结果:{1,2,4,5,3}
第三轮,4作为key,与后面2个数字比较
4比5小,但3比4小,于是交换4和3的位置
结果:{1,2,3,5,4}
第四轮,5作为key,与后面1个数字比较
5比4小,交换位置。完成排序
结果:{1,2,3,4,5}
Java实现:
static int[] selectionSort(int[] array) { //从首位开始作为key,每轮的key为后一位,每次选出本轮最小的数字 for (int index = 0; index < array.length; index++) { int key = array[index]; int minIndex = index; //key与后面的剩余的数字比较,找到最小的数字 for (int k = index + 1; k < array.length; k++) { if (array[k] < key) { key = array[k]; minIndex = k; } } //将本轮最小数字与key做交换 if (index != minIndex) { int tmp = array[index]; array[index] = key; array[minIndex] = tmp; } } return array; }
阅读全文
0 0
- 【算法基础】选择排序
- 【基础算法】选择排序
- 算法基础—选择排序
- java基础-选择排序算法
- 基础算法-直接选择排序
- 基础算法-直接选择排序
- 基础算法之选择排序
- 算法基础之选择排序
- 算法基础之选择排序
- 基础算法之 选择排序
- 算法基础之排序篇-选择排序
- 基础算法之排序(2)--选择排序
- 【基础算法】选择排序与冒泡排序
- Java语言基础-排序算法-选择排序
- 基础算法 :冒泡排序,选择排序。。。。
- 基础排序算法(冒泡排序、选择排序、插入排序)
- 【java基础】选择排序算法原理+实现
- 算法(algorithms)基础之:选择排序
- Java集合类详解
- [28]错误处理与调试
- 爬虫学习路程
- 领域驱动设计之领域模型
- 170628 逆向-安卓查壳软件ApkDetecter安装
- 【算法基础】选择排序
- 【原创达人】Miix 5 Pro开启AHCI正确姿势
- 【CSS背景图片页面自适应充满屏幕】
- mongoDB第一讲:入门介绍
- Jsoup爬取全国行政区域信息并入库
- 基于Zookeeper的分布式锁实现
- 人工智能将永远不可理解吗?Is Artificial Intelligence Permanently Inscrutable?
- python2.7 机器学习环境配置记录
- Appium使用教程_Android篇