快速排序算法(java)根本不排序

快速排序算法(java)根本不排序,java,quicksort,Java,Quicksort,我想根据我们得到的伪代码编写一个快速排序算法。一切都很正常,只是算法根本没有对数组进行排序,它只是返回相同的数组。 以下是我使用的算法: static void quickSort (double [] values, int low, int high) { if(low < high) { int p = partition(values, low, high); quickSort(values,

我想根据我们得到的伪代码编写一个快速排序算法。一切都很正常,只是算法根本没有对数组进行排序,它只是返回相同的数组。 以下是我使用的算法:

static void quickSort (double [] values, int low, int high)
    {
        if(low < high)
        {
            int p = partition(values, low, high);
            quickSort(values, low, p - 1);
            quickSort(values, p + 1, high);
        }
    }
静态void快速排序(双[]值,int-low,int-high)
{
如果(低<高)
{
int p=分区(值、低、高);
快速排序(值,低,p-1);
快速排序(值,p+1,高);
}
}
静态int分区(双[]值,int低,int高)
{
双枢轴=数值[高];
int i=低-1;
对于(int j=低;j<高;j++)
{
if(值[j]
publicstaticvoidmain(字符串[]args)
{
双[]值={44,67,14,15,15,11,67,17};
对于(int j=0;j

我不知道错误在哪里,因为我使用的一个示例工作原理几乎相同,但实际上对数组进行了排序。

这里有一个错误。悬挂分号

   if(values[j] < pivot); // <-------------

if(值[j]分区
方法的第5行末尾,有一个额外的分号:
if(values[j]。删除那个分号,你的代码就可以工作了!这不是语法错误,尽管它是一个错误。语法错误定义:命令或指令中错误放置的字符或字符串,导致执行失败。由于没有排序,执行失败。在Java中,语法错误导致编译时失败,而不是运行时的错误行为。这里多余的分号在语法上是正确的,但在逻辑上是错误的。您引用的定义很模糊,我不确定它来自何处,但例如,Wikipedia将语法错误定义为“在编译时编写的字符或标记序列的语法错误。在纠正所有语法错误之前,程序不会编译”。
public static void main(String[] args) 
    {
        double [] values = {44, 67, 14, 15, 15, 11, 67, 17};
        for(int j = 0; j < values.length; j++)
        {
            System.out.print(values [j] + " ");
        }
        System.out.println("");
        quickSort(values, 0, values.length - 1);
        for(int j = 0; j < values.length; j++)
        {
            System.out.print(values [j] + " ");
        }
    }
   if(values[j] < pivot); // <-------------