一、什么是选择排序
1.1、文字描述
选择排序是一种简单直观的排序方式,它的工作原理是每一次排序时先从待处理数据元素中选择出一个最大(或最小)的元素,并存放在序列的末尾(起始)位置,每进行一次排序后其操作元素就减少1,直到所有的数据元素都排序完成。
1.2、程序描述
定义一组数据元素,第一次排序时,假定第一个元素是最大值 max,然后遍历数组元素,找出最大值和最后一个元素进行交换。第二次排序时还是假设第一个是最大元素并和剩下的元素进行比较,找到最大的元素并放到倒数第二个的位置,一直循环下去直到排序完成。
二、代码示例
public static void main(String[] args) {
int[] ints = {-24,-15,2,1,3,5,7,6,10,8,9,11,12,13};
/* 定义需要操作的数据长度 */
int handleLength = ints.length;
int handleIndex = 0;
/* 默认第一个是最大数据 */
int max = ints[0];
/* 当需操作数据长度为1时就不需要操作了 */
while (handleLength > 1) {
for (int j = 0; j < handleLength; j++) {
if (ints[j] > max) {
/* 拿到最大值的下标和数值 */
handleIndex = j;
max = ints[j];
}
/* 最后一次操作的时候进行数据转换操作 */
if (j == (handleLength - 1)) {
ints[handleIndex] = ints[handleLength - 1];
ints[handleLength - 1] = max;
max = ints[0];
handleLength--;
}
}
System.out.println(CollectionUtils.arrayToList(ints));
}
}
Copy
输出如下: