此程序使用插入排序對來自文件的前n個單詞進行排序。
這不是由我做的。我們被要求使用我們的老師提供的這個程序來實現其他分類技術。我導入了源代碼,當我運行它。它說:文件和插入排序。線程「main」中的異常java.lang.ArrayIndexOutOfBoundsException:0
異常線程 「main」 java.lang.ArrayIndexOutOfBoundsException:0 在SortingAnalysis.main(SortingAnalysis.java:26)
但是,當我們的老師展示了它在我們班,它沒有錯誤。
我也想知道如何從文件中排序文字,甚至沒有說明文件名(例如tobesorted.txt)。也許只要它在JRE系統庫中,它就可以工作,不是嗎?
import java.io.*;
import java.util.*;
/**
* Compares the running times of sorting algorithms
* @author bryann
*
*/
public class SortingAnalysis {
public static void insertionSort(String[] a) {
int n = a.length;
for(int i = 1; i < n; i++) {
String cur = a[i];
int j = i - 1;
while((j >= 0) && (a[j].compareTo(cur) > 0)) {
a[j + 1] = a[j--];
} // end while
a[j + 1] = cur;
} // end for
} // end insertionSort
public static void main(String[] args) {
final int NO_OF_WORDS = 5000;
try {
Scanner file = new Scanner(new File(args[0]));
String[] words = new String[NO_OF_WORDS];
int i = 0;
while(file.hasNext() && i < NO_OF_WORDS) {
words[i] = file.next();
i++;
} // end while
long start = System.currentTimeMillis();
insertionSort(words);
long end = System.currentTimeMillis();
System.out.println("Sorted Words: ");
for(int j = 0; j < words.length; j++) {
System.out.println(words[j]);
} // end for
System.out.print("Running time of insertion sort: " + (end - start) + "ms");
} // end try
catch(SecurityException securityException) {
System.err.println("You do not have proper privilege to access the files.");
System.exit(1);
} // end catch
catch(FileNotFoundException fileNotFoundException) {
System.err.println("Error accessing file");
System.exit(1);
} // end catch
} // end main
} // end class SortingAnalysis
由於導入導致的錯誤?使用Eclipse,我剛按下
文件>導入>常規>文件系統>目錄(他送給我們整個文件夾)>進入文件夾(我創建了一個新的項目,還有就是我「進口」代碼)>完成
請幫幫我。我無法從作業開始(即在同一源文件中嘗試其他排序技術),因爲我無法運行它。非常感謝你!
添加了「作業」標記...您嘗試過什麼,可以從eclipse調試器開始。在這種情況下,你也應該發佈異常堆棧跟蹤,它應該告訴你異常發生的位置(行)。 – home 2012-07-08 07:35:06
謝謝,回家! – 2012-07-08 07:52:36