當前位置:係統粉 > 電腦問答 > 其他問答 > 關於數組排序的問題。。

關於數組排序的問題。。

提問者:勾勾手不棄晗  |  瀏覽 次  |  提問時間: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

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

朽木乖

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

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

風寒錦

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

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

你隻是衰鍋而已

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

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

wenyuans96

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

2017-02-18 11:43:29
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排上去要又五次排列這個排列叫做第二個排列。
讚 14
裏維夫人

裏維夫人

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

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

hell永遠存在

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

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

鳳台一日遊

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

2017-02-19 00:00:08
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是分別對函數定義的兩個臨時變量,標記數組的。
讚 17
小鑫文玩店

小鑫文玩店

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

2017-02-18 03:26:35
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 }
讚 12
解決方法
  • 關於Win7補丁問題

    關於Win7補丁問題

       和藍屏一樣出名的就是Windows源源不絕的補丁了,很多補丁都是必須要安裝的關鍵補叮隨著微軟反盜版措施的升級,在盜版係統上麵使用Windows Update顯然不...

  • 關於Win7補丁問題的解決

    關於Win7補丁問題的解決

      和藍屏一樣出名的就是Windows源源不絕的補丁了,很多補丁都是必須要安裝的關鍵補叮隨著微軟反盜版措施的升級,在盜版係統上麵使用Windows Update顯然不太現實了,...

  • 關於Windows XP SP2相關問題的介紹

    關於Windows XP SP2相關問題的介紹

      係統用久了就要升級,而微軟也會公布一些升級的版本,比如SP2,但是很多人對新版本不是特別了解,不知道到底應不應該就這麼升級了,現在就來介紹Windows XP Servi...

  • 關於win10定時關機的一些問題

    關於win10定時關機的一些問題

    在平時使用計算機的過程中,大家有可能需要計算機在某個時刻自動關機。我在以前使用win7的時候一直都是用“at xx:xx shutdown -s”這個命令來自動關機的。其中的x代表...

版權信息

Copyright @ 2011 係統粉 版權聲明 最新發布內容 網站導航