0

内部にメソッドを呼び出す再帰関数があります。同じテストメソッド内で他のソートメソッドを呼び出せるようにしたいと思います。他に4つの方法があります(mergeSortたとえば)。テスターが1つのメソッド()で(すべての異なるサイズの配列の)すべての並べ替えテストを実行selectionSortし、次のメソッド()に移動して、最初mergeSortからテストに進むように、メソッド呼び出しを循環させるにはどうすればよいですか?size = 100そこから続けますか?

public void testSorts(){

    for(int size = 100; size<=100000; size = size*10){
        String[] data;
        long start;
        long time;

        UI.println("\n\n======Selection Sort=======\n");

        data = createArray(size);
        //printData(data);
        start = System.currentTimeMillis();

        selectionSort(data);
        //             insertionSort(data);
        //             bubbleSort(data);
        //             mergeSort(data);
        //             quickSort(data);
        //             quickSort2(data);
        time =  System.currentTimeMillis() - start;

        UI.printf("Number of items:  %,d\n", data.length);
        UI.printf("Sorted correcetly: %b\n", testSorted(data));
        UI.printf("Time taken:       %.2f s\n", time/1000.0);

        UI.println("\n=======DONE=========\n");

    }
}
4

2 に答える 2

1

つまり、戦略パターンを使用します。

Sorterメソッドを使用してインターフェースを作成しますsort

ソート方法ごとにクラスを作成します。

作成Sorter[]して回転させます。

于 2012-09-10T15:16:35.760 に答える
0

メソッドを持ち、アルゴリズムごとに1つずつ、さまざまなクラスによって実装されるインターフェイス を作成します。SortingAlgorithmsort(String[])

ここで、引数aとして受け入れ、SortingAlgorithmを呼び出すメソッドを使用しますalgorith.sort(data)
(たとえばpublic void testSorts(SortingAlgorithm algorithm)、引数として渡された単一のアルゴリズムを呼び出すメソッドを持つことができます)。

関連するアルゴリズムが呼び出されます。

于 2012-09-10T15:15:47.233 に答える