问题遇到的现象和发生背景
请问选择法排序这两种写法都是正确的吗?都是选择法排序吗?
问题相关代码,请勿粘贴截图
public class Test {
public static void main(String[] args){
int[] a = {334,6,4,9,5,1,87,3,56,-23,12,76};
//第一种写法
for(int i = 0; i < a.length-1; i++){
int min = i;
for(int j = i+1; j < a.length; j++){
if(a[min] > a[j]){
min = j;
}
}
if(min != i){
int temp = a[i];
a[i] = a[min];
a[min] = temp;
}
}
//输出结果
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println();
//第二种写法
for(int i = 0; i < a.length-1; i++){
for(int j = i+1; j < a.length; j++){
if(a[j] < a[i]){
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
//输出结果
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println();
}
}
运行结果及报错内容
经过测试,两种写法都能正确排序的。