public static void insertionSortRecursion(String a[], int first, int last) {
if (first < last) {
//sort all but last
insertionSortRecursion(a, first, last - 1);
insertInOrder(a[last], a, first, last -1);
}
}
private static void insertInOrder(String element, String[] a, int first, int last) {
// System.out.println(last - 1);
// System.out.println(element);
// System.out.println(a[last]);
if (element.compareTo(a[last]) >= 0) {
a[last + 1] = element;
} else if(first < last) {
a[last + 1] = a[last];
insertInOrder(element, a, first, last - 1);
} else {
a[last + 1] = a[last];
a[last] = element;
}
}
こんにちは、私は再帰を使用して挿入ソートを実装しようとしていますが、少数の単語では問題なく動作していますが、ソートしているファイルのサイズには約 10,000 の単語が多いため、実装後にスタックオーバーフローが発生します。エラーを取り除くために何をすべきかを提案してください。
These are the methods I am using for insertion sort using recursion and I am calling them in my constructor.