这个快速排序程序有什么问题?

Whats wrong in this quicksort program?

怀疑分区函数有问题

void swap(int num1, int num2) { /*function to swap the values */
   int temp = intArray[num1];    
   intArray[num1] = intArray[num2];
   intArray[num2] = temp;
}

int partition(int left, int right) { //partition function
   int leftPointer = left;
   int j;
   int pivot=intArray[right];
   for(j=0;j<right;j++){
    if(intArray[j]<=pivot){
        swap(j,leftPointer);
        leftPointer++;
    }
   }
  swap(leftPointer,right);
  return leftPointer;
}

void quickSort(int left, int right) { //quicksort
   if(left<right){
      int partitionPoint = partition(left, right);
      quickSort(left,partitionPoint-1);
      quickSort(partitionPoint+1,right);
   }
}

程序运行良好,但无法排序!

您的分区算法总是从元素零开始。它应该从分区的开头开始。