快速排序算法
2015-10-20 18:00
267 查看
int a[10];
void setdata(int left,int right){
int i,j,temp,t;
temp= a[left];//temp中存的就是基准数
i=left;
j=right;
while (left>right) {
return;
}
while (i!=j) {
while (a[j]>=temp && i<j) {//从右像左找
j--;
}
while (a[i]<=temp && i<j) {//再从左向右找
i++;
}
if (i<j) {//没有相遇时交换位置
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
a[left]=a[i];//将基数归位,相遇时
a[i]=temp;
setdata(left, i-1);//继续处理左边的
setdata(i+1, right);//继续处理右边的
}
int main(int argc,
const char * argv[]) {
@autoreleasepool {
a[1]=12;
a[2]=21;
a[3]=5;
a[4]=12;
a[5]=9;
a[6]=36;
a[7]=6;
a[0]=45;//
setdata(0,
8);//调用排序方法
for (int i=0; i<8;
i++) {//逐个打印出来
NSLog(@"%d",a[i]);
}
}
return
0;
}
void setdata(int left,int right){
int i,j,temp,t;
temp= a[left];//temp中存的就是基准数
i=left;
j=right;
while (left>right) {
return;
}
while (i!=j) {
while (a[j]>=temp && i<j) {//从右像左找
j--;
}
while (a[i]<=temp && i<j) {//再从左向右找
i++;
}
if (i<j) {//没有相遇时交换位置
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
a[left]=a[i];//将基数归位,相遇时
a[i]=temp;
setdata(left, i-1);//继续处理左边的
setdata(i+1, right);//继续处理右边的
}
int main(int argc,
const char * argv[]) {
@autoreleasepool {
a[1]=12;
a[2]=21;
a[3]=5;
a[4]=12;
a[5]=9;
a[6]=36;
a[7]=6;
a[0]=45;//
setdata(0,
8);//调用排序方法
for (int i=0; i<8;
i++) {//逐个打印出来
NSLog(@"%d",a[i]);
}
}
return
0;
}
相关文章推荐
- Sublime Text3(mac)一些插件和快捷键
- matlab高斯模板生成,K是归一化系数,上面是一个半径200的高斯模板用来做MSR
- 全局变量与类似配置文件的模块文件
- Android仿淘宝购物车
- PostgreSQL数据的导出导入
- Python日期和时间
- AFNetworking 3.0迁移指南
- AS问题解决系列3—iCCP: Not recognizing known sRGB profile(转)
- 黑马程序员——基础知识--继承
- 修改initramfs-3.18.6-cloud.img
- 修改Spring-task 定时时间
- VS中实时获取SVN的版本号并写入到AssemblyInfo.cs中(C#)
- springmvc+shiro简单配置及作用(applicationContext.XML springmvc部分)
- iOS无处不在详解iOS集成第三方登录(SSO授权登录无需密码)
- 工作备忘-ios中oc枚举值与字符串之间的转换
- Android 解析XML数据
- GraphXML.html backup
- Qcril
- 怎么理解【前台PHP,中间件用Java,底层用C/C++】
- php 常见的内置函数及用法