JAVA—数组选择排序
选择排序解释(解释来源于度娘):
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。 (这里以选出最小为例)
选择排序图解:
代码实现:
public static void main(String[] args) {
int[] arr = {3,2,4,34,23};
//通过Arrays工具类输出数组(与冒泡无关,就是遍历数组)
System.out.println("选择排序之前的数组:" + Arrays.toString(arr));
//控制比较轮数(看不明白就画图手写)
for (int i = 1; i < arr.length; i++){
//假设最小数的索引是i-1(也就是第一轮最小索引是0,第二轮最小索引是1....)
int minIndex = i - 1;
//循环一遍,选出最小索引
for (int j = i; j < arr.length; j++){
if (arr[j] < arr[minIndex]){
minIndex = j; //最小数的索引
}
}
//如果最小索引跟初始的索引不同,就证明有比初始的最小索引还要小的数,那么交换这两个数
if (minIndex != i - 1){
//交换最小索引的数和初始最小索引的数
int t;
t = arr[i - 1];
arr[i - 1] = arr[minIndex];
arr[minIndex] = t;
}
}
System.out.println("选择排序后的数组:" + Arrays.toString(arr));
}