Java 交替法

Java 交替法,java,methods,Java,Methods,我有一个递归函数,它调用其中的一个方法。我希望能够在同一个测试方法中调用我的其他排序方法。我还有4种其他方法(mergeSort)。我如何循环方法调用,以便测试人员在一个方法(selectionSort)上运行所有排序测试(所有不同大小的数组),然后移动到下一个方法(mergeSort),并从size=100开始再次测试它,然后继续测试 public void testSorts(){ for(int size = 100; size<=100000; size = size*1

我有一个递归函数,它调用其中的一个方法。我希望能够在同一个测试方法中调用我的其他排序方法。我还有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");

    }
}
public void testSorts(){
对于(int size=100;size创建一个接口
SortingAlgorithm
,该接口将有一个
排序(String[])
方法,并将由不同的类实现,每个类对应一个算法

现在,使用一个方法,该方法接受
SortingAlgorithm
作为参数,并调用
algorith.sort(data)

(例如,您可以使用
public void testSorts(SortingAlgorithm algorithm)
方法调用单个算法,即作为参数传递的算法)


将调用相关算法。

简而言之:使用策略模式

使用方法
sort
创建界面
Sorter

为每个排序方法创建类


创建
Sorter[]
并在其中旋转。

您熟悉
接口吗?在我看来,它们是解决此问题的正确方法。接口或函数指针的选择是yours@Minion91Java没有函数指针。虽然AFAIK Java 8将有闭包。@S.L.Barth抱歉,为了我自己的智慧,我要快速