快排 忘了写一遍
2015-08-31 17:03
316 查看
#include <iostream>
#include <cstdlib>
#include <vector>
using namespace std;
int partion(int s[], int l, int r) //返回调整后基准数的位置
{
int i = l, j = r;
int x = s[l]; //s[l]即s[i]就是第一个坑
while (i < j)
{
while(i<j&&s[j]>=x)
j--;
if(i<j)
{
s[i]=s[j];
i++;
}
while(i<j&&s[i]<=x)
i++;
if(i<j)
{
s[j]=s[i];
j--;
}
}
s[i] = x;
return i;
}
void quickSort(int a[],int left,int right)
{
if(left<right)
{
int pos=partion(a,left,right);
quickSort(a,left,pos-1);
quickSort(a,pos+1,right);
}
}
int main()
{
int a[]={1,3,2,6,7,4,5,2};
quickSort(a,0,7);
for(int i=0;i<=7;i++)
{
cout<<a[i]<<" "<<endl;
}
system("pause");
return 0;
}
#include <cstdlib>
#include <vector>
using namespace std;
int partion(int s[], int l, int r) //返回调整后基准数的位置
{
int i = l, j = r;
int x = s[l]; //s[l]即s[i]就是第一个坑
while (i < j)
{
while(i<j&&s[j]>=x)
j--;
if(i<j)
{
s[i]=s[j];
i++;
}
while(i<j&&s[i]<=x)
i++;
if(i<j)
{
s[j]=s[i];
j--;
}
}
s[i] = x;
return i;
}
void quickSort(int a[],int left,int right)
{
if(left<right)
{
int pos=partion(a,left,right);
quickSort(a,left,pos-1);
quickSort(a,pos+1,right);
}
}
int main()
{
int a[]={1,3,2,6,7,4,5,2};
quickSort(a,0,7);
for(int i=0;i<=7;i++)
{
cout<<a[i]<<" "<<endl;
}
system("pause");
return 0;
}
相关文章推荐
- Codevs 题目1690 开关灯(线段树区间异或)
- 1155 -- Problem of IP
- Android 日志系统
- Linux平台上搭建apache+tomcat负载均衡集群
- 关于List集合使用 Linq 操作问题
- Hadoop第11周练习—HBase基础知识
- 堆和栈的区别
- hql关联表、map/list查询
- 1154 -- 算菜价
- 1153 -- p次方求和
- 车型识别“A Large-Scale Car Dataset for Fine-Grained Categorization and Verification”
- Android 网络编程——Android 中的 HTTP 编程
- spring mvc + MyBatis + Easyui
- [推荐]Rolling cURL: PHP并发最佳实践 商品价格监控 curl_multi族 函数
- HDU1269-迷宫城堡
- Hadoop第10周练习—Mahout部署及进行20newsgroup数据分析例子
- Mac系统常见的指令
- ARC - MRC
- 机器学习到底适合哪些人群?
- kmp