快速排序(C语言)

递归

void quickSort(int *a,int low,int high)
{
    if(low

确定一个数的最终位置

三个循环,每个循环都要有low

int partition(int *a,int low,int high)
{
    int flag = a[low];//最左值取出,这一趟就确定这个值的位置
    while(low=flag)//先从右向左
        {
            high--;
        }
        a[low]=a[high];//第一个比flag小的值放到左面
        while(low

主函数

int main()
{
    int a[10] = {3,5,2,8,1,4,6,3,1,9};
    quickSort(a,0,9);
    int i;
    for(i=0;i<10;i++)
    {
        printf("%-5d",a[i]);
    }
    return 0;
}


你可能感兴趣的:(快速排序(C语言))