您的位置:首页 > 理论基础 > 数据结构算法

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

2017-12-17 19:30 218 查看


Problem Description

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


Input

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


Output

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


Example Input

8
49 38 65 97 76 13 27 49



Example Output

27 38 13 49 76 97 65 49



Hint

 


Author

xam
#include<stdio.h>
#define N 1250
int a
;
void Pai(int a[], int low, int high)
{
int key = a[low];
while(low < high)
{
while(low < high && a[high] >= key)
{
high--;
}
a[low] = a[high];
while(low < high && a[low] <= key)
{
low++;
}
a[high] = a[low];
}
a[low] = key;
}
int main()
{
int n;
while(~scanf("%d", &n))
{
int i;
for(i = 0;i < n; i++)
{
scanf("%d", &a[i]);
}
Pai(a, 0, n - 1);
for(i = 0; i < n; i++)
{
printf("%d%c", a[i], i == n - 1 ? '\n' : ' ');
}
}
return 0;
}
欢迎提意见改进
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  快速排序