数据结构实验之排序一:一趟快排
Time Limit: 1000MS Memory limit: 65536K
题目描述
给定N个长整型范围内的整数,要求输出以给定数据中第一个数为枢轴进行一趟快速排序之后的结果。
输入
连续输入多组数据,每组输入数据第一行给出正整数N(N < = 10^5),随后给出N个长整型范围内的整数,数字间以空格分隔。
输出
输出一趟快速排序后的结果,数字间以一个空格间隔,行末不得有多余空格。
示例输入
8 49 38 65 97 76 13 27 49
示例输出
27 38 13 49 76 97 65 49
提示
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int n,i,j;
int a[110000];
while (~scanf ("%d",&n))
{
for (i=0; i<n; i++)
scanf ("%d",&a[i]);
int low = 0,high = n-1;
int x = a[low];
while (low<high)
{
while (low<high&&a[high]>=x)
high--;
a[low] = a[high];
while (low<high&&a[low]<=x)
low++;
a[high] = a[low];
}
a[low] = x;//必须有
for (i=0; i<n-1; i++)
printf ("%d ",a[i]);
printf ("%d\n",a[n-1]);
}
return 0;
}
本实践指导如何通过一趟快速排序算法处理一系列长整型数值。具体包括读取输入数据、使用枢轴进行排序并输出结果。提供了完整的C语言实现代码。
9654

被折叠的 条评论
为什么被折叠?



