亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

這個Java選擇排序一直運行,像死循環沒輸出

這個Java選擇排序一直運行,像死循環沒輸出

慕先生4463397 2017-10-11 16:33:35
package com.zdhddcjj.數組2;//從小到大排序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}; for(int i=0;i<arr.length-1;i++){ int min=i; for(int j=i+1;j<arr.length;j++){ if(arr[min]>arr[j]){ j=min; } } if(min!=i){ int temp=arr[min]; arr[min]=arr[i]; arr[i]=temp; System.out.println(arr[i]); } } }}為什么沒輸出一直運行?既然arr[min]=arr[i];為什么還要arr[i]=temp;先前已經有int temp=arr[min];
查看完整描述

3 回答

已采納
?
慕粉1020236938

TA貢獻2條經驗 獲得超2個贊

j=min; 反了吧,你把min 的值賦給j那當然死循環了

查看完整回答
1 反對 回復 2017-10-12
  • 慕粉1020236938
    慕粉1020236938
    還有后面的的兩個arr(i)應該是arr (j)吧。。不要記代碼,要理解
?
慕影書香

TA貢獻112條經驗 獲得超42個贊

既然arr[min]=arr[i];為什么還要arr[i]=temp;先前已經有int temp=arr[min];

這是一個位置交換代碼,就像你準備將一個盒子里的東西換成別的東西,那么需要一個盒子先來接收拿出的東西的,或者將兩杯飲料互換,需要第三個杯子一樣,你畫個圖就理解了。

查看完整回答
1 反對 回復 2017-10-11
?
慕影書香

TA貢獻112條經驗 獲得超42個贊

這是我寫的一種排序方法,有多種排序方法的。http://img2.sycdn.imooc.com/59ddfa7900016deb04950246.jpg ? ? ? ? ? ? ? ? ? ? ? ? ? public class Sort {

public static void main(String[] args) {

int[] arr = { 12, 45, 2, 45, 36, 88, 22, 45 };

Sort.ascSort(arr);

}


// 從小到大排序方法

public static void ascSort(int[] arr) {

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

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

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

int temp = 0;

temp = arr[i];

arr[i] = arr[j];

arr[j] = temp;

}

}

}

System.out.print("[ ");

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

if (i != arr.length) {

System.out.print(arr[i] + " ");

} else {


System.out.print(arr[i]);

}

}

System.out.println("]");


}

}


查看完整回答
1 反對 回復 2017-10-11
?
能坐著不站著

TA貢獻1條經驗 獲得超0個贊

j=min; ? ?導致?for(int j=i+1;j<arr.length;j++){........}死循環

查看完整回答
反對 回復 2017-10-12
  • 3 回答
  • 1 關注
  • 4482 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號