3398 一趟快排
作者:互联网
新开一个分类存下自己做的题而已,还需要提高,纯粹是为了不忘,侵删。
数据结构实验之排序一:一趟快排
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
给定N个长整型范围内的整数,要求输出以给定数据中第一个数为枢轴进行一趟快速排序之后的结果。
Input
连续输入多组数据,每组输入数据第一行给出正整数N(N < = 10^5),随后给出N个长整型范围内的整数,数字间以空格分隔。
Output
输出一趟快速排序后的结果,数字间以一个空格间隔,行末不得有多余空格。
Sample Input
8 49 38 65 97 76 13 27 49
Sample Output
27 38 13 49 76 97 65 49
Hint
Source
xam
代码部分:
#include <iostream>
using namespace std;
void one(int a[],int n)
{
int key=a[0];
int i=0,j=n-1;
while(i<j)
{
while((i<j)&&(a[j]>=key))
{
j--;
}
if(i<j)
{
a[i]=a[j];
i++;
}
while((i<j)&&(a[i]<=key))
{
i++;
}
if(i<j)
{
a[j]=a[i];
j--;
}
}
a[i]=key;
}
void show(int a[],int n)
{
for(int i=0;i<n-1;i++)
{
cout<<a[i]<<" ";
}
cout<<a[n-1]<<endl;
}
int main()
{
int n;
while(cin>>n)
{
int a[100001];
for(int i=0; i<n; i++)
{
cin>>a[i];
}
one(a,n);
show(a,n);
}
return 0;
}
标签:49,int,3398,空格,快排,Input,排序,一趟 来源: https://blog.csdn.net/qq_38846633/article/details/86652480