我用陣列做的一個冒泡排序,希望能夠從小到大,為何輸出都是1?

2013-03-21 5:20 am
package arrayDemo;

import java.util.Scanner;

public class TaxisArrayDemo {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
int array[]=null;
array=new int[3];
for(int i=0;i<array.length;i++)
{
System.out.println("請輸入數位");
int num=scanner.nextInt();
array[i]=num;
}
for(int i=1;i<array.length;i++)
{
for(int j=0;j<array.length;j++)
{
if(array[j]>array[i]) // 交換位置
{
int temp=array[i];
array[j]=array[i];
array[i]=temp;
}
}
}
for(int i=0;i<array.length;i++)
{
System.out.println(array[i]);
}



}

}
輸出結果
冒泡排序
請輸入數位
5
請輸入數位
1
請輸入數位
6
1
1
1

回答 (2)

2013-03-21 5:49 pm
✔ 最佳答案
請改成


int temp=array[j];
array[j]=array[i];
array[i]=temp;

你的交換邏輯錯了
2013-03-21 6:39 am
因為你交換位置那邊寫錯了。


收錄日期: 2021-04-13 19:22:20
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20130320000015KK05140

檢視 Wayback Machine 備份