java if 无限循环,这个Java选择排序一直运行,像死循环没输出

da677aaa88b9ce7524a8c24772626f1d.png

Developer_Zuck

// 从小到大排序public class Sort {public static void main(String[] args) {Sort s = new Sort();s.sort();}public void sort() {int arr[] = { 12, 45, 2, 45, 36, 88, 22, 45 };System.out.println(arr[1]);for (int i = 0; i < arr.length; i++) {int min = i;//分析:当i=0,此时min=0;for (int j = i + 1; j < arr.length; j++) {//min=0/**第一轮循环:j=1;* arr[0]=12,arr[j]=45,结果arr[0]>arr[j]不成立,不会走这个if* 第二轮循环:j=2* arr[0]=12,arr[j]=2,结果arr[0]>arr[j]成立,走这个if* 此时j=0* 第三轮循环:j=3* ...* 第七轮循环,arr[0]>arr[j]不成立,不会走这个if*/if (arr[min] > arr[j]) {j = min;}}//这个for循环完成一次后,得到的结果是:j=0;min=0;i=0;System.out.println(min);if (min != i) {//j=0;min=0;i=0;所以,min==i,此时也不会走这个ifint temp = arr[min];arr[min] = arr[i];arr[i] = temp;System.out.println(arr[i]);}}}}这是帮你的部分分析,代码这么写肯定有问题的,因为你的逻辑并不符合。排序方法有多种,我帮你写一个,你看看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值