快速排序

来源:互联网 发布:如何用网络挣钱 编辑:程序博客网 时间:2024/06/05 17:48
//集训第一天先从排序开始
#include <iostream>#include <cstring>#include <algorithm>#include <cstdio>#include<math.h>#include<cstdlib>using namespace std;#include<stdio.h>#define N 1000+10int a[N],n,m;void ksort(int left ,int right ){    if(left+1>right){        if(a[left]>a[right]) swap(a[left],a[right]);        return ;    }    int i=left,j=right,x=a[right];    while(i<j){        while(a[i]<x&&i<j) i++;        while(a[j]>=x&&i<j)j--;        swap(a[i],a[j]);    }    swap(a[i],a[right]);    if(left<i-1) ksort(left,i-1);    if(right>j+1) ksort(j+1,right);}int main(){while(~scanf("%d",&n)){for(int i=0;i<n;i++)    scanf("%d",&a[i]);ksort(0,n-1);for(int i=0;i<n;i++)    printf("%d ",a[i]);    printf("\n");}return 0;}


0 0
原创粉丝点击