选择排序的工作原理:
- 遍历前默认数组中的首元素为最小值;
- 第一次遍历,找到最小元素的索引值并记录,遍历完毕后,将其与数组的第一个元素交换位置。
- 第二次遍历,找到最小元素的索引值并记录,遍历完毕后,将其与数组的第二个元素交换位置。
- 以此类推…
代码实现:
public static void main(String[] args) {
int arr[] = new int[20];
//排序前
System.out.println("排序前:");
for (int i = 0; i < arr.length; i++) {
arr[i] = new Random().nextInt(20);
System.out.print(arr[i]+"\t");
}
System.out.println();
//排序后
System.out.println("排序后:");
for (int i = 0; i < arr.length; i++) {
int index = i;
for (int j = i+1; j < arr.length; j++) {
if (arr[j]<arr[index]){
index = j;
}
}
int temp = arr[i];
arr[i] = arr[index];
arr[index] = temp;
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+"\t");
}
}
运行结果: