係統粉 > 電腦問答 > 其他問答

已解決關於數組排序的問題。。

提問者:勾勾手不棄晗  |  瀏覽次  |  提問時間:2017-02-18  |  回答數量:9

關於數組排序的問題。。 1 public class A{ 2 public static void main(String[] args){ 3   int arrayOflnts[] = {32,87,589,12,1076,2000,8,622,127}; 4   int temp; 5   for(int i=0;i<arrayOflnts.length;i++){ 6    for(int j=arrayOflnts.length-1;j>i;j--){      //i和j分別是用來代表什麼的呢? 7      if(arrayOflnts>arrayOflnts[j]){     //不懂 8       temp = arrayOflnts; 9       arrayOflnts = arrayOflnts[j]; 10       arrayOflnts[j] = temp; 11      } 12    } 13   } 14   for(int k=0;k<9;k++){ 15    System.out.print(arrayOflnts[k] + \"

已有9條答案
天掉下來自己扛

天掉下來自己扛

回答數:217  |  被采納數:86

[s:462] [s:462] [s:462] [s:462]
2017-02-18 02:21:13
讚 21
朽木乖

朽木乖

回答數:121  |  被采納數:21

不懂java,不過 if(arrayOflnts>arrayOflnts[j]){ 看起來有語法錯誤
2017-02-18 02:37:08
讚 12
風寒錦

風寒錦

回答數:219  |  被采納數:63

if(arrayOflnts>arrayOflnts[j]){ //這個if語句是判斷什麼的呢?
temp = arrayOflnts;
arrayOflnts = arrayOflnts[j];
arrayOflnts[j] = temp;
這句初看應該是一個比較兩個數字大小的,如果前麵的數字大於後麵的,則把它們的順序交換
2017-02-18 06:56:53
讚 21
你隻是衰鍋而已

你隻是衰鍋而已

回答數:11  |  被采納數:47

這個程序是用冒泡算法的排列數字大小,但是裏麵有錯誤
if(arrayOflnts>arrayOflnts[j]){
temp = arrayOflnts;
arrayOflnts = arrayOflnts[j];
arrayOflnts[j] = temp;
應該是這樣才對
2017-02-18 07:53:40
讚 1
wenyuans96

wenyuans96

回答數:145  |  被采納數:4

for(int j=arrayOflnts.length-1;j>i;j--){ // (1)注:分別用1和2來代替之兩個地方
if(arrayOflnts>arrayOflnts[j]){ // (2)
這是一個冒泡排序,分為兩個循環:
(1)是第二個循環。
(2)是判斷這個數組是按升序,還是按降序排列的。
我在這裏為兩個循環舉個例子如:1,2,3,4,5我用冒泡降序排列出來
1,2,3,4,5
2,1,3,4,5
2,3,1,4,5
2,3,4,1,5
2,3,4,5,1
現在,把2排上出
3,2,4,5,1
3,4,2,5,1
3,4,5,2,1
。。。。。類推。。。
把1,2,等排上出叫做第一個排列
而,把1排上去要又五次排列這個排列叫做第二個排列。
2017-02-18 11:43:29
讚 14
裏維夫人

裏維夫人

回答數:16  |  被采納數:119

還是不太明白。。
2017-02-18 12:18:02
讚 1
hell永遠存在

hell永遠存在

回答數:128  |  被采納數:82

我覺得第二個for循環
要改改
for(int j=arrayOflnts.length-1;j>i;j--)
改成
for(int j=i+1;j<=arrayOflnts.length;j++)
2017-02-18 19:51:12
讚 12
鳳台一日遊

鳳台一日遊

回答數:178  |  被采納數:140

1 public class A{ //類名
2 public static void main(String[] args){ //方法名
3 int arrayOflnts[] = {32,87,589,12,1076,2000,8,622,127}; //定義一個數組函數,有9個值。
4 int temp; //定義一個中間變量
5 for(int i=0;i<arrayOflnts.length;i++){ //定義臨時變量i,i小於數組的長度9;
6 for(int j=arrayOflnts.length-1;j>i;j--){ //i和j分別是用來代表什麼的呢?
/*
*這裏定義的臨時變量j,給的初始值是等於數組的長度9減1,即8;且要求j>i才能進入循環
*/
7 if(arrayOflnts>arrayOflnts[j]){ //這段對比是正確的,我好像在哪看過。不過我給不出一共理由。
8 temp = arrayOflnts;
9 arrayOflnts = arrayOflnts[j];
10 arrayOflnts[j] = temp;
11 }
12 }
13 }
//這個循環是為了打印需要。
14 for(int k=0;k<9;k++){
15 System.out.print(arrayOflnts[k] + " ");
16 }
17 System.out.println();
18 }
19 }

+++++++++++++++++++++++++++++++++++++++++++

第二行:
public static void main(String[] args){
規範寫法(不算錯誤):
public static void main(String args[]){
第六行:
for(int j=arrayOflnts.length-1;j>i;j--){ //i和j分別是用來代表什麼的呢?

i和j是分別對函數定義的兩個臨時變量,標記數組的。
2017-02-19 00:00:08
讚 17
小鑫文玩店

小鑫文玩店

回答數:123  |  被采納數:98

1 public class A{
2 public static void main(String[] args){
3 int arrayOflnts[] = {32,87,589,12,1076,2000,8,622,127};
4 int temp;
5 for(int i=0;i<arrayOflnts.length;i++){
6 for(int j=arrayOflnts.length-1;j>i;j--){
// 這裏的for循環 可不可以改為:for(int j=0;j<arrayOflnts.length;j++)
7 if(arrayOflnts>arrayOflnts[j]){ //如果一個數大於其他的數 是不是這樣理解?
// 下麵的這三句代碼 是不是排序呢? 是怎麼實現的呢?
8 temp = arrayOflnts; //將值大的數賦給temp 是不是這樣理解?
9 arrayOflnts = arrayOflnts[j]; //這個是什麼意思呢?
10 arrayOflnts[j] = temp; //這個又是什麼意思呢?
11 }
12 }
13 }
14 for(int k=0;k<9;k++){
15 System.out.print(arrayOflnts[k] + " ");
16 }
17 System.out.println();
18 }
19 }
2017-02-18 03:26:35
讚 12
相關問答
最新其他問答
解決方法