交替的方法

时间:2012-09-10 15:12:48

标签: java methods

我有一个递归函数,可以调用其中的方法。我希望能够在同一测试方法中调用我的其他排序方法。我还有其他4种方法(例如mergeSort)。我将如何循环遍历方法调用,以便测试人员在一个方法(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");

    }
}

2 个答案:

答案 0 :(得分:1)

简而言之:使用策略模式。

使用方法Sorter创建界面sort

为每个排序方法创建类。

创建Sorter[]并旋转它。

答案 1 :(得分:0)

创建一个接口 SortingAlgorithm,它将具有sort(String[])方法,并将由不同的类实现 - 每个算法一个。

现在,使用一个接受SortingAlgorithm作为参数并调用algorith.sort(data)的方法。
(例如,您可以使用public void testSorts(SortingAlgorithm algorithm)方法调用单个算法,即作为参数传递的算法。

将调用相关算法。