2012-04-07 151 views
0

的排序多個陣列我希望做一個升序排序7陣列,基於他們中的一個的值,然後打印使用的方法的內循環中的最後一個數組。數組值由用戶輸入,並且將包含至少一組數據但不超過5組。基於Java的另一個陣列

我的代碼到目前爲止是,其選擇排序的基本結構,因爲我被要求使用它,我期待做數組升序排序簡(代表簡單的興趣),但我不能瞭解如何讓所有其他數組移動並保留值。

在環法的任何想法使用這個?

public static void sort(double[] amount, double[] iRate, int[] term, double[] simp, double[] month, double[] daily, double[] weekly) 
    { 

     for (int i=0;i<simp.length-1;i++) 
     { 
      int minindex=i; 
      for (int j=i+1;j<simp.length;j++) 
      { 
       if(simp[minindex]>simp[j]) 
        minindex=j; 
      } 
      double temp = simp[minindex]; 
      simp[minindex]=simp[i]; 
      simp[i]= temp; 
     } 

} 

示例執行

[Line #] [Principal Amount] Interest rate term simple monthly  weekly daily 
1   $1,375.00    1.18%   7 9.4244 9.4522  9.4557 9.4567 
2    $100.00     3.25%   6  1.625 1.636  1.6377 1.6382 
3    $100.00     3.25%   12  3.25 3.2988  3.3023 3.3032 

[Line #] [Principal Amount] Interest rate term simple monthly weekly daily 
1    $100.00     3.25%  6  1.62 1.636  1.6377 1.6382 
2    $100.00     3.25%  12  3.25 3.2988 3.3023 3.3032 
3   $1,375.00     1.18%  7  9.4244 9.4522 9.4557 9.4567 
+2

何苦寫自己選擇的FPGA實現排序,而不是僅僅使用內置了Java類庫的那種?這是功課嗎? – 2012-04-07 03:23:50

+0

的確是,我粘貼了香港專業教育學院得到了這一切,除了排序的所有陣列關閉的一個 – 2012-04-07 03:26:34

+0

它被允許在這裏發表的功課問題,這部分完成,但請仔細閱讀本第一:HTTP://meta.stackexchange .com/questions/10811/how-to-ask-and-answer-homework-questions – 2012-04-07 03:27:21

回答

1

一個簡單的方法使用現有的代碼,這樣做是爲了交換元素在所有陣列每當你在simp交換元素:

double temp = simp[minindex]; 
simp[minindex]=simp[i]; 
simp[i]= temp; 

temp = iRate[minindex]; 
iRate[minindex]=iRate[i]; 
iRate[i]= temp; 

. 
. 
. 

這還不是最優雅的方式。 OO的方式是將一個對象作爲成員amount, iRate, term...並對這些對象進行排序。

+0

作爲凌亂這種方式看起來可能它確實爲我所需要的工作,儘管在嘗試將所有方法都顯示出來之後,我仍然保持着麻煩,但是那樣做確實。 – 2012-04-11 02:04:28

0

您可以創建內部的所有領域類:

class Entity implements Comparable<Entity> { 
     double simp; 
     double amount; 
     double rate; 
     ... 
     // construct each instance taking the next line from 
     // the arrays or doubles 

     // implement compareTo 
     public int compareTo(Entity entity) { 
     // compare only the field you need 
     return Double.compare(simp, entity.simp); 
     } 
    } 

然後建立實體的陣列根據你說的70個陣列,並使用排序呢Arrays.sort() 在最後你可以將數據重新複製到雙打的陣列,或者乾脆直接打印的內容來自實體[]。