数据结构实验之排序一:一趟快排

来源:互联网 发布:超次元矩阵官网 编辑:程序博客网 时间:2024/05/16 01:54

数据结构实验之排序一:一趟快排

Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic

Problem Description

给定N个长整型范围内的整数,要求输出以给定数据中第一个数为枢轴进行一趟快速排序之后的结果。

 

Input

连续输入多组数据,每组输入数据第一行给出正整数N(N < = 10^5),随后给出N个长整型范围内的整数,数字间以空格分隔。

Output

输出一趟快速排序后的结果,数字间以一个空格间隔,行末不得有多余空格。

Example Input

849 38 65 97 76 13 27 49

Example Output

27 38 13 49 76 97 65 49
#include <stdio.h>#include <string.h>const int maxn = 1e5+7;int main(){    int a[maxn];    int i,j;    int n,x;    while(~scanf("%d", &n))    {        for( i = 0; i < n; i++)        {            scanf("%d", &a[i]);        }        i = 0,j = n-1;        x = a[i];        while( i < j)        {            while( i < j&& a[j] >=x) j--;           if(i<j)           {               a[i] = a[j]; i++;           }            while( i < j&& a[i] < x) i++;            if( i < j)            {                a[j] = a[i];j--;            }        }        a[i] = x;        for(i=0;i<n-1;i++)        {            printf("%d ",a[i]);        }        printf("%d\n",a[i]);    }}


0 0
原创粉丝点击