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
C语言中快速排序函数中的错误 #包括 使用名称空间std; 整数交换(整数*a,整数i,整数j) { int temp=a[i]; a[i]=a[j]; a[j]=温度; } 整型枢轴(整型*a、整型低、整型高) { int j,i=low-1,x=a[high]; 对于(j=i+1;j_C_Sorting_Quicksort - Fatal编程技术网

C语言中快速排序函数中的错误 #包括 使用名称空间std; 整数交换(整数*a,整数i,整数j) { int temp=a[i]; a[i]=a[j]; a[j]=温度; } 整型枢轴(整型*a、整型低、整型高) { int j,i=low-1,x=a[high]; 对于(j=i+1;j

C语言中快速排序函数中的错误 #包括 使用名称空间std; 整数交换(整数*a,整数i,整数j) { int temp=a[i]; a[i]=a[j]; a[j]=温度; } 整型枢轴(整型*a、整型低、整型高) { int j,i=low-1,x=a[high]; 对于(j=i+1;j,c,sorting,quicksort,C,Sorting,Quicksort,在您的pivot函数return语句之前使用它 #include<iostream> using namespace std; int swap(int *a,int i,int j) { int temp=a[i]; a[i]=a[j]; a[j]=temp; } int pivot(int *a,int low,int high) { int j,i=low-1,x=a[high]; for(j=i+1;j<high;j++)

在您的pivot函数return语句之前使用它

#include<iostream>
using namespace std;
int swap(int *a,int i,int j)
{
    int temp=a[i];
    a[i]=a[j];
    a[j]=temp;
}
int pivot(int *a,int low,int high)
{
    int j,i=low-1,x=a[high];
    for(j=i+1;j<high;j++)
    {
        if(a[j]<x)
            swap(a,j,++i);
    }
    swap(a,i,high);
    return i;
}
int quick(int *a, int low, int high)
{
    if(low<high)
    {
        int p=pivot(a,low,high);
        quick(a,low,p-1);
        quick(a,p+1,high);
    }
}
int main()
{
    int a[]={3,2,1,5,8,7,5,6,9,8},i;
    quick(a,0,9);
    for(i=0;i<10;i++)
        cout<<a[i]<<" ";
    return 0;
}
而不是

swap(a,++i,high);

在pivot函数的return语句之前使用这个函数

#include<iostream>
using namespace std;
int swap(int *a,int i,int j)
{
    int temp=a[i];
    a[i]=a[j];
    a[j]=temp;
}
int pivot(int *a,int low,int high)
{
    int j,i=low-1,x=a[high];
    for(j=i+1;j<high;j++)
    {
        if(a[j]<x)
            swap(a,j,++i);
    }
    swap(a,i,high);
    return i;
}
int quick(int *a, int low, int high)
{
    if(low<high)
    {
        int p=pivot(a,low,high);
        quick(a,low,p-1);
        quick(a,p+1,high);
    }
}
int main()
{
    int a[]={3,2,1,5,8,7,5,6,9,8},i;
    quick(a,0,9);
    for(i=0;i<10;i++)
        cout<<a[i]<<" ";
    return 0;
}
而不是

swap(a,++i,high);

一般来说,您应该尽量避免函数调用的参数中出现副作用。(例如,您永远不知道函数中的一个函数何时可能被实现为宏和函数。)一般来说,您应该尽量避免函数调用的参数中出现副作用。(例如,您永远不知道其中一个函数何时可能被实现为宏和函数。)