为什么我在Java中遇到这个编译错误?

2 java sorting compiler-errors

我收到以下错误:

quicksort(int[],int,int)cannot be applied to(int[])
Run Code Online (Sandbox Code Playgroud)

当我编译这个:

import java.util.*;

public class Sort {

public static void main(String[] args){

Random rand = new Random();
int[] tab = new int[10];

for(int i = 0; i < tab.length; i++) {
tab[i] = rand.nextInt(100);

System.out.println("Before: ");
show(tab);

quicksort (tab);
System.out.println("After: ");
show(tab);
  }
}
static void quicksort(int tab[], int x, int y) {

        int i,j,v,temp;

        i=x;
        j=y;
        v=tab[(x+y) / 2];
        do {
            while (tab[i]<v) 
                i++;
            while (v<tab[j]) 
                j--;
            if (i<=j) {
                temp=tab[i];
                tab[i]=tab[j];
                tab[j]=temp;
                i++;
                j--;
            }
        }
        while (i<=j);
        if (x<j) 
            quicksort(tab,x,j);
        if (i<y) 
            quicksort(tab,i,y);
    }


static void show (int tab[]) {
for (int i = 0; i <tab.length; i++) {
System.out.println(tab[i]);

  }
 }
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

MBC*_*ook 17

在"之前"打印出来之后,你有:

quicksort (tab);
Run Code Online (Sandbox Code Playgroud)

您设计的功能需要三个参数.您可以添加额外的参数:

quicksort (tab, 0, tab.length - 1)
Run Code Online (Sandbox Code Playgroud)

或者添加一个新功能,例如:

public quicksort(int[]) {
  quicksort(tab, 0, tab.length - 1);
}
Run Code Online (Sandbox Code Playgroud)


cla*_*amp 11

你定义的函数"quicksort"要求3个参数,但你只提供一个.


DaC*_*own 6

因为您的快速排序功能有3个参数,但您的通话仅提供一个参数.

编辑:第二:(