算法系列-排序算法-选择排序(JAVA版)
简介
记录自己的学习的算法
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零
排序算法JAVA实现
代码如下
public int[] doSort(int[] array) {
//数组长度,选择次数
int size = array.length;
//开始选择
for (int i = 0; i < size; i++) {
//从未排序元素第一个开始,i = 0 时整个数组都是未排序元素
int tmpIndex = i;
for (int j = i; j < size; j++) {
//对比选出最小值索引
if (array[j] < array[tmpIndex]) {
tmpIndex = j;
}
}
//新的最小值
int tmp = array[tmpIndex];
//最小值放到已排序的序列的末尾
array[tmpIndex] = array[i];
array[i] = tmp;
//打印一下过程与算法无关
List<Integer> list = new ArrayList<>();
for (int i1 : array) {
list.add(i1);
}
System.out.println(list.subList(0, i + 1).toString() + " " + list.subList(i + 1, list.size()).toString());
}
return array;
}
输出结果
未排序 [9, 6, 0, 2, 3]
[0] [6, 9, 2, 3]
[0, 2] [9, 6, 3]
[0, 2, 3] [6, 9]
[0, 2, 3, 6] [9]
[0, 2, 3, 6, 9] []
已排序 [0, 2, 3, 6, 9]
源码地址
https://github.com/RockeyCui/learn-normal
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 rockeycui@163.com
文章标题:算法系列-排序算法-选择排序(JAVA版)
文章字数:352
本文作者:崔石磊(RockeyCui)
发布时间:2018-08-24, 20:00:00
原始链接:https://cuishilei.com/算法系列-排序算法-选择排序-JAVA.html版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。