2016-06-21 64 views
2

我一直在玩弄不同的排序功能和基本代碼。但是,當我試圖將數組的大小增加到1000以上時,我只得到了空白控制檯,而且它說程序已終止。排序大型數組不返回輸出

任何人都可以解釋可能是什麼問題?

public class Sorting { 

    public static void main(String[] args) 
    { 
     int[] array = generateRandomArray(10000); 
     printArray(array); 
     insertionSort(array); 
     printArray(array); 
    } 

    public static void printArray(int[] arr) 
    { 
     System.out.print("[ "); 
     for (int i=0; i<arr.length; i++) 
     { 
      System.out.print(arr[i] +" "); 
     } 
     System.out.println("]"); 
    } 

    public static int[] generateRandomArray(int n) 
    { 
     int[] arr = new int[n]; 
     Random rnd = new Random(); 
     for (int i=0; i<n; i++) 
     { 
      arr[i]=rnd.nextInt(5000); 
     } 
     return arr; 
    } 

    public static void insertionSort(int[] arr) 
    { 
     int temp, index; 
     for (int i=1; i<arr.length; i++) 
     { 
      temp=arr[i]; 
      index=i-1; 
      while (index>=0 && temp<arr[index]) 
      { 
       arr[index+1]=arr[index]; 
       index--; 
      } 
      arr[index+1]=temp; 
     } 
    } 
} 
+0

它確實有我的輸出。 –

+1

我也收到了eclipse控制檯上的輸出。如果你正在使用IDE檢查控制檯緩衝區的限制,例如eclipse,可以通過首選項設置 - >運行/調試 - > console – Jaiprakash

回答

1

只是在我的機器上運行它。工作很好。確保您導入java.util.Random

+0

每個程序員的參數 –

4

在大多數IDE中,例如Eclipse控制檯輸出是有限的。如果您在運行配置中將輸出重定向到文件(假設您正在使用Eclipse),則應該看到輸出。

在控制檯輸出中啓用「自動換行」可能會使其可見,並再次假定它是Eclipse。

+0

謝謝,確實是一個IDE問題。 – DR29

0

Eclipse控制檯似乎有一些行長度限制。當我在命令行中運行你的代碼時,它打印的很好。

如果你要修復在eclipse這個問題,更改設置:

(1)單擊 '窗口' 菜單 - > '首選項' (2) '運行/調試' - > '控制檯' (3)檢查'固定寬度控制檯'

這應該使您的代碼在Eclipse中工作。

enter image description here