快速排序

橙三吉。 提交于 2020-01-28 12:16:41
#include<stdio.h>
#include<algorithm>
using namespace std;

int a[100];
void quicksort(int left,int right)
{
    int i,j,temp;
    if(left>right)
        return;
    temp=a[left];
    i=left,j=right;
    while(i!=j)
    {
        while(a[j]>=temp && i<j)
            j--;
        while(a[i]<=temp && i<j)
            i++;
        if(i<j)
            swap(a[i],a[j]);
    }
    a[left]=a[i];
    a[i]=temp;
    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]);
    printf("\n");
    return 0;
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!