我应该得到的输出为
{-10,6,7,13,20,80,90,100}
但是我得到的输出为
{20,100,13,6,7,80,-10,90}
在SelectionSort中。为什么我得到此输出?我该如何解决这个问题?
public class x{
public static void main(String args[]){
int[] a= {20,13,6,7,80,-10,90,100};
int i,j,c,largest;
for(i=a.length-1;i>0;i--){
largest=0;
for(j=1;j<=(a.length-1);j++){
if(a[j]>a[largest]){
largest=j;
}
}
swap(a,largest,i);
}
for(c=0;c<a.length;c++)
System.out.println(a[c]);
}
public static void swap(int[] arr, int a, int b){
int temp;
if(a==b){
return;
}
temp=arr[a];
arr[a]=arr[b];
arr[b]=temp;
}
}
答案 0 :(得分:1)
public class x{
public static void main(String args[]){
int[] a= {20,13,6,7,80,-10,90,100};
int i,j,c,largest;
for(i=a.length-1;i>=0;i--){
largest=0;
for(j=1;j<=i;j++){
if(a[j]>a[largest]){
largest=j;
}
}
swap(a,largest,i);
}
for(c=0;c<a.length;c++)
System.out.println(a[c]);
}
public static void swap(int[] arr, int a, int b){
int temp;
if(a==b){
return;
}
temp=arr[a];
arr[a]=arr[b];
arr[b]=temp;
}
}