分治算法——快速排序
7.1快速排序
#include
using namespace std;
void qsort(int,int);
int a[100];
void qsort(int l,int r) //自定义快速排序程序
{
int i,j,mid,p;
i=l;
j=r;
mid=(l+r)/2;
//当前序列的中间位置的数为中间数
do
{
while(a[i] while(a[j]>a[mid]) j–;
//在右半部分寻找比中间数小的数
if (i<=j)
{
int p=a[i];
a[i]=a[j];
a[j]=p;
i++;
j–;
}
}while(i<=j);
//搜索结束后的结果:以中间数为界,左边数小,右边数大。
if (l
【分治算法——快速排序】int main()
{
int n;
cin>>n;
for(int i=1;
i<=n;
i++) //输入一组待排序的数
cin>>a[i];
qsort(1,n);
//快速排序
for(int i=1;
i<=n;
i++) //输出排序结果
cout< return 0;
}
推荐阅读
- 急于表达——往往欲速则不达
- 慢慢的美丽
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 2019-02-13——今天谈梦想()
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- Ⅴ爱阅读,亲子互动——打卡第178天
- 低头思故乡——只是因为睡不着
- 取名——兰
- 每日一话(49)——一位清华教授在朋友圈给大学生的9条建议
- 画解算法(1.|画解算法:1. 两数之和)