本文主要是介绍数据结构实验之排序一:一趟快排 oj,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
数据结构实验之排序一:一趟快排
Time Limit: 1000MS Memory Limit: 65536KB
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> #include <stdlib.h> long long a[100000]; int main() {int n,i,j;long long x;while(scanf("%d",&n) != EOF){for(i = 0;i <n;i++){scanf("%lld",&a[i]);}i = 0;j = n-1;x = a[0];while(i < j){while(i <j&&a[j] >= x)j--;a[i] = a[j];while(i <j&&a[i] <= x)i++;a[j] = a[i];}a[i] = x;for(i = 0;i < n;i++){printf("%lld%c",a[i],i==n-1?'\n':' ');}}return 0; }
这篇关于数据结构实验之排序一:一趟快排 oj的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!