#include<bits/stdc++.h>
using namespace std;
int a[101],n;
int kp(int a[],int s,int e)//排每一个数
{
int key=a[s];
while(s<e)
{
while(s<e&&a[e]>=key)
e--;//由于定义的key为a【s】,所以要先从右边开始
a[s]=a[e];//找到在关键字key右边小于关键字的数,把它赋值给左边(a[s]已经保存到key中)
while(s<e&&a[s]<=key)//同里
s++;
a[e]=a[s];
}
a[s]=key;
return s;
}
void Qsort(int a[],int s,int e)
{
if(s<e)
{
int mid=kp(a,s,e);//mid为排完的那个数的最终位置
Qsort(a,s,mid-1);
Qsort(a,mid+1,e);
}
}
int main()
{
int n;
cout<<"输入排序的个数:";
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
Qsort(a,1,n);
for(int i=1;i<=n;i++)
cout<<a[i];
return 0;
}
数据结构----简单易懂的快排
猜你喜欢
转载自blog.csdn.net/qq_44162236/article/details/103304078
今日推荐
周排行