public class Array_selectSort {
public static void main(String[] args) {
int[] arr = new int[] { 5, 3, 9, 7, 2, 4, 6, 1 };
printArray(arr); // 排序前打印
selectSort(arr);
printArray(arr); // 排序后打印
}
/*
* 选择排序。
* 内循环结束一次,最值出现在头脚标位置上。
* 每次都用一个脚标位置和其余脚标位置对比一遍,比较最值。
* 每一次循环结束后就确定一个最值,下次比较就少一个 有点像:
* 尖朝下,让内循环初始值随外循环变换
* -----
* ----
* ---
* --
* -
* 外循环不用循环到最后一个,内循环应该从外循环+1开始
* 就可以比较最后两个 参数传递的是引用传递,
* 方法中的形参和传递的实参操作的是内存中的一个对象
*/
public static void selectSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i + 1; j < arr.length; j++) {
if(arr[i] > arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
public static void printArray(int[] arr) {
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
if (i != arr.length - 1) {
System.out.print(arr[i] + ", ");
} else {
System.out.print(arr[i] + "]");
}
}
System.out.println();
}
}
java 数组选择排序
最新推荐文章于 2023-02-22 00:12:44 发布