2012-04-07 150 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() 在最后你可以将数据重新复制到双打的阵列,或者干脆直接打印的内容来自实体[]。