2014-05-01 96 views
-3

所以我必须编写一个插入排序代码,将排序随机整数数组,这个数组已经设置好,并且工作正常,除了我的排序不是,我继承了我的:插入排序数组java

for(int i =1; i< numberSort.length-1;i++){ 
     int temp = numberSort[i]; 
     int j = i-1; 
     while((j >= 0) && (numberSort[j]>temp)){ 
      numberSort[j+1] = numberSort[j]; 
      j = j-1; 
     } 
     numberSort[j+1] = temp;   
    } 
} 

在我看来,这应该工作,但它不会,它会将数字从原来的位置移动,但不会按升序排列。感谢您提供的任何帮助。

+0

如果不是算法的部分尝试:Arrays.sort(numberSort); – vanilla

回答

1

此代码的工作对我来说:

public static void main(String[] args) { 
    int[] numberSort = {22,7,2, 5, 7, 1, 2, 9,33,55,12,1,0}; 
     for (int i = 1; i < numberSort.length; i++) { 
      int temp = numberSort[i]; 
      int j = i - 1; 
      while ((j >= 0) && (numberSort[j] > temp)) { 
       numberSort[j + 1] = numberSort[j]; 
       j = j - 1; 
      } 
      numberSort[j + 1] = temp; 
     } 
     for (int i = 0; i < numberSort.length; i++) { 
      System.out.println(numberSort[i]); 
     } 
    } 

给出输出:

0 
1 
1 
2 
2 
5 
7 
7 
9 
12 
22 
33 
55 
+0

嗯..我不知道该怎么做..我的数组已经创建并填充到这种排序方法的时间,所以我不完全确定为什么它不像你的工作是 – user3570902

+0

发布你的整个代码。 – Jakkra