这个简单的java选择排序帮我讲讲两个for是如何排序的么?

class Zuoye11{

public static void main(String args[]){

int[] arr={2,30,8,63,21};

int x;

for(int i=0;i<arr.length;i++){

for(int j=0;j<arr.length;j++){

if(arr[i]>arr[j]){

x=arr[i];

arr[i]=arr[j];

arr[j]=x;

}

}

}

for(int t=0;t<arr.length;t++){

System.out.println(arr[t]+"");

}

}

}

正确答案是从大到小 我看起来怎么是从小到大排序的呢……

Key4042162
浏览 1850回答 4
4回答

buzhaodi

从大到小的。。你仔细看看 这个算法效率很低。。。 如果数量过大 建议使用归并或者快速排序 你把数组带进去 你就知道了 算到第二组当I等于30的时候 也就是外层循环到第二轮的时候  内层循环j取0的时候  是不是 30和2互换位置? 那是不是大的跑到前面去了?

ziom

断点调试

__YXQ__

选择排序的循环不应该是这样吗?for(int i = 0;i<arr.length-1;i++){     for(int j = i + 1;j<arr.length;j++){         ...     } }

00小伙

可以看看冒泡排序案例
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java