0

さまざまなサイズの配列を並べ替える必要があります。これらのサイズは、10 要素、50 要素、100 要素、500 要素、および 1000 要素です。これらの配列サイズごとに、既にソートされている配列、部分的にソートされている別の配列、およびランダムな配列を使用する必要があります。クイックソート、挿入、バブルソートの 3 つのソートを使用する必要があります。私はこれを2週間取り組んできましたが、配列の呼び出しを作成できないようです。

4

1 に答える 1

1

テスト配列を作成し、ソート方法が正常に機能しているかどうかを確認するためのいくつかのユーティリティ メソッドを次に示します。

public static Integer[] createRandomArray(int size) {
    Integer[] result = new Integer[size];
    Random randomGenerator = new Random();
    for(int i = 0; i < size; i++) {
        result[i] = randomGenerator.nextInt(size*100);
    }
    return result;
}

public static Integer[] createSortedArray(int size) {
    return createPartiallySortedArray(size, 0, size);
}

public static Integer[] createPartiallySortedArray(int size, int from, int to) {
    Integer[] result = createRandomArray(size);
    Arrays.sort(result, from, to);
    return result;
}

public static boolean isSorted(Integer[] original, Integer[] sorted) {
    Integer[] clonedOriginal = Arrays.copyOf(original, original.length);
    Arrays.sort(clonedOriginal);
    return Arrays.equals(clonedOriginal, sorted);
}

注 -fromおよびtoパラメータは の範囲内にある必要が[0..size-1]ありますfrom < to


配列を作成し、それらをソーターにフィードし、結果を検証するために使用できるフラグメントは次のとおりです。

public static void main(String[] args) {
    List<Integer[]> arrays = new ArrayList<Integer[]>();
    int size = 100;
    arrays.add(createRandomArray(size));
    arrays.add(createPartiallySortedArray(size, 0, size/2));
    arrays.add(createSortedArray(size));

    List<Integer[]> result = doBubbleSort(arrays);  // <- implement that method
    for (int i = 0; i < arrays.size(); i++)
        System.out.println(isSorted(arrays.get(i), result.get(i)));
}
于 2012-05-11T07:38:23.497 に答える