2011-08-25 48 views
1

我写了一个数组排序使用我在这个网站上找到的例子。但是我的代码没有编译正确。它不是存储第一个值,而是存储整数0并重复它。我似乎无法找到它有什么问题,但我怀疑它是在我的循环中的某个地方。阵列分类器。输出错误

/** 
* @author angu2548 
* XXX 310255325 
*/ 
public class Sorter { 

    public int[] sortArray(String[] args) { 
     int [] numbers = new int [args.length]; 

     //Turning it into an int [] array 
     for (int i= 0; i > args.length; i++){ 
      int x = Integer.parseInt(args[i]); 
      numbers[i] = x; 
     } 

     //Insertion sort 
     for(int j = 1; j < numbers.length; j++){ 
      int temp = numbers[j]; 
      int i = j -1; 

      while (i > 0 && numbers[i] > temp){ 
       numbers[i + 1] = numbers[i]; 
       i--;    
      } 
      numbers[i + 1] = temp; 
      //System.out.println("got to here"); 
     } 
     return numbers; 
    }  

    public static void main(String[] args) {   
     Sorter sort = new Sorter(); 
     int[] result = sort.sortArray(args); 
     if(result != null && result.length > 0){ 
      System.out.print("[" + result[0]); 
      for(int i=1; i<result.length; ++i){ 
       System.out.print(", " + result[i]); 
      } 
      System.out.println("]"); 
     } 
    } 
} 

的输出是[0,0,0,0,0,0,0,0,0,0,0,0]尽管我的值是 [1 2 3 4 5 6 7 8 8 5 4 3]

回答

3

您做出的循环条件的错误:

for (int i= 0; i > args.length; i++) 

将阻止循环运行,因此numbers永远不会用正确的元素初始化。它应该是

for (int i= 0; i < args.length; i++) 
+0

三江源非常多。 – syncoroll

2

变化'>''<'以下行:

for (int i= 0; i > args.length; i++) 
+0

Opps,@Peter Torok的相同答案 –