选择排序-版本V1.0
public static void main(String[] args) {
int[] arr = {9,6,2,3,5,4,3,0,8,7};
for(int y=0;y<arr.length;y++) {
int index = y;
int mix = arr[y];
for(int i=y+1;i<arr.length;i++) {
mix=arr[index];
//1、找出最小值
if(mix>arr[i]) {
mix=arr[i];
index=i;
}
}
//2、替换最小值和首次比较值
arr[index]=arr[y];
arr[y]=mix;
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
System.out.println();
}
}
选择排序-版本V1.1
public static void main(String[] args) {
int[] arr = {9,6,2,3,5,4,3,0,8,7};
for(int y=0;y<arr.length;y++) {
int index = y;
//1、找出最小值位置
for(int i=y+1;i<arr.length;i++) {
index = arr[index]>arr[i]?i:index;
}
//2、替换最小值位置和首位的值
int mix = arr[index];
arr[index]=arr[y];
arr[y]=mix;
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
System.out.println();
}
}
选择排序-验证正确性V2.0
public static void main(String[] args) {
int[] arr = new int[10];
Random random = new Random();
for(int i=0;i<arr.length;i++){
arr[i]=random.nextInt(100);
}
System.out.println("arr--->开始初始化");
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
System.out.println();
System.out.println("arr--->初始化结束");
System.out.println("arr--->开始克隆");
int[] arr_clone = arr.clone();
for(int i=0;i<arr_clone.length;i++){
System.out.print(arr_clone[i]+" ");
}
System.out.println();
System.out.println("arr--->克隆完成");
System.out.println("arr--->开始手动选择排序");
for(int y=0;y<arr.length;y++){
int index = y;
for(int i=y+1;i<arr.length;i++){
if(arr[index]>arr[i]){
index = i;
}
}
int mix = arr[index];
arr[index]=arr[y];
arr[y]=mix;
}
System.out.println("arr--->排序完成");
System.out.println("arr--->排序后打印");
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
System.out.println();
System.out.println("arr--->排序后验证开始");
Arrays.sort(arr_clone);
boolean verification_result = true;
for(int i =0;i<arr.length;i++){
if(arr[i]!=arr_clone[i]){
verification_result= false;
}
}
System.out.println("arr--->排序后验证结果:"+verification_result);
}