快速排序的C语言实现

#include <stdio.h>

int qSort(int a[],int i,int j)
{
    int h = i;
    int r = j;
    int x = a[h];
    int f = 0;
    while (h < r)
    {
        for (;a[r]>=x;r--)
        {
            if(h==r)
            {
                f=1;
                break;
            }
        }
        if (f==1) break;
        a[h] = a[r];
        h++;
        for (;a[h]<x;h++)
        {
            if(h==r)
            {
                f=1;
                break;
            }
        }
        if (f==1) break;
        a[r] = a[h];
        r--;
    }
    a[h] = x;
    return h;
}

void quickSort(int a[],int i,int j)
{
    int m;
    if(i<j)
    {
        m = qSort(a,i,j);
        quickSort(a,i,m-1);
        quickSort(a,m+1,j);
    }
}


int main(void)
{
    int i;
    int n = 4;
    int a[] = {4,3,2,1};
    quickSort(a,0,n-1);
    for (i = 0; i<n;i++)
    {
        printf("%d ",a[i]);
    }

    return 0;
}

  

原文地址:https://www.cnblogs.com/ghmgm/p/4771370.html