quickSort

今天刚学的
#include<stdio.h>

int a[1000];

void swap(int x, int y)
{
    int tmp;
    tmp=a[x];
    a[x]=a[y];
    a[y]=tmp;
}

void quickSort(int left, int right)
{
    if(left>right)                 
        return ;
    int i,j;
    int tmp=a[left];//每次找一个基准数,将比他大的放在一边
    i=left;         //比他小的放在另一边
    j=right;
    while(i!=j)
    {
        while(a[j]>=tmp&&i<j)
            j--;
        swap(i,j);
        while(a[i]<=tmp&&i<j)
            i++;
        swap(i,j);
    }
    quickSort(left,i-1);
    quickSort(i+1,right);
}

int main()
{
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
        scanf("%d",&a[i]);
    quickSort(0,n-1);
    for(int i=0;i<n;i++)
        printf("%d ",a[i]);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_39761890/article/details/77751794