Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 快速排序中的分区函数工作不正常_Sorting_Computer Science_Quicksort - Fatal编程技术网

Sorting 快速排序中的分区函数工作不正常

Sorting 快速排序中的分区函数工作不正常,sorting,computer-science,quicksort,Sorting,Computer Science,Quicksort,我尝试使用快速排序的分区函数将数组分成两部分,一部分小于所需元素(枢轴),另一部分大于所需元素(枢轴) 配分函数 void partition(int a[],int beg,int end,int pivotindex){ swap(a[pivotindex],a[end]); int x=a[end]; int i=beg-1; for(int j=beg;j<=end-1;j++){ if(a[j]<=x){

我尝试使用快速排序的分区函数将数组分成两部分,一部分小于所需元素(枢轴),另一部分大于所需元素(枢轴)

配分函数

void partition(int a[],int beg,int end,int pivotindex){
    swap(a[pivotindex],a[end]);
    int x=a[end];
    int i=beg-1;

    for(int j=beg;j<=end-1;j++){
        if(a[j]<=x){
           i++;
           swap(a[i],a[j]);
        }
    }

    swap(a[i+1],a[end]);
    return ;
}
输出

0 1 1 0 2 1 2
在干运行代码时,输出是正确的,但是由于教科书中指定了分区函数的角色,所以我希望得到这个输出

0 1 1 0 1 2 2
或者它的其他组合,但两个“2”都必须在它的末尾。 我对配分函数的理解有缺陷吗?或者我的实现有问题吗

0 1 1 0 1 2 2