#include <bits/stdc++.h>
using namespace std;
void Partition(int a[],int low,int high)
{
int key = a[low];
a[0] = 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(cin>>n)
{
int i,a[100006];
for(i = 1;i <= n;i++)
{
cin>>a[i];
}
Partition(a,1,n);
cout<<a[1];
for(i = 2;i <= n;i++)
{
cout<<" "<<a[i];
}
cout<<endl;
}
return 0;
}
数据结构实验之排序一:一趟快排
最新推荐文章于 2020-11-04 19:31:11 发布
本文介绍了一个基于快速排序的分区算法实现。该算法通过不断选择一个基准元素并将数组分为两个部分来工作,使得一部分的所有元素都不大于基准,另一部分的所有元素都大于基准。代码示例展示了如何读取输入并应用此算法进行排序。
248

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



