双循环思路:
假设第一个数为最小数(int min = arr[i]),内循环将其与每个数依次比较(j++),将最后得到的较小数放在数组第一位
值得一提的是交换需要靠第三个数(int flag)实现
第一位排序完毕(i++)
然后从第二位开始,重复上述操作即可
import java.util.Scanner;
public class QKSORT {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int[] arr = new int[10]; // 输入十个数字,可更改
for (int i = 0; i < arr.length; i++) {
arr[i] = in.nextInt();
}
sort(arr); // 使用排序方法
}
public static void sort(int[] arr) {
int flag; // 两数交换值需要通过第三个变量
for (int i = 0; i < arr.length; i++) {
for (int j = i + 1; j < arr.length; j++) {
int min = arr[i]; // 设arr[i]为最小数(第一次设arr[0],第二次arr[1])
if (arr[j] < min) { //依次比较
flag = arr[i];
arr[i] = arr[j];
arr[j] = flag; //数值交换
} //循环一次,最小值arr[0]就不参与比较了
}
}
for (int k = 0; k < arr.length; k++) {
System.out.print(arr[k]);
}
}
}
测试数据和结果



