输入10个数,如何用递归算法实现快速排序?
收起
知与谁同
2018-07-17 19:46:21
1930
0
1
条回答
写回答
取消
提交回答
-
#include<iostream>
using namespace std;
int a[10];
void qs(int s,int e)
{
int x=a[s],l=s,r=e;//以第一个数为参照做比较
if(l>=r)return;
while(l<r)
{
while(l<r&&a[r]>=x)
r--; //不小于分界值的留在右边,遇到小于的停止
a[l]=a[r];
while(l<r&&a[l]<=x)
l++; //小于分界值的留在左边,遇到不小于的停止
a[r]=a[l];
}
a[r]=x;
qs(s,r-1);
qs(r+1,e);//递归
}
int main()
{
int i;
for(i=0;i<10;i++)
cin>>a[i]; //输入数组元素
qs(0,9); //执行排序函数
for(i=0;i<10;i++) //输出排序后结果
cout<<a[i];
system("pause");
}
2019-07-17 22:50:39