快速排序
来源:互联网 发布:中欧基金 知乎 编辑:程序博客网 时间:2024/06/16 04:51
#include <stdio.h> //快速排序 //快速排序法是冒泡排序法的一种改进,主要的算法思想是在待排序的n个数据中取一个数据作为基准值 //将所有记录分为三组,使第一组各数据值均小于或等于基准值,第二组做基准值的数据 //第三组各数据值均大于或等于基准值,这便实现了第一趟分割,然后再对第一组和第三组分别重复上述 //方法,依次类推,直到每组中只有一个记录为止void qusort(int s[],int start,int end){ int i,j; i=start; //将每组首个元素赋给i j=end; //将每组末尾元素赋给j s[0]=s[start]; //设置基准值 while(i<j) { while(i<j&&s[0]<s[j]) j--; //位置左移 if(i<j) { s[i]=s[j]; //将小于或等于基准值的s[j]放到s[i]的位置上 i++; //位置右移 } while(i<j&&s[i]<=s[0]) i++; //位置右移 if(i<j) { s[j]=s[i]; //将大于或等于基准值的s[i]放到s[j]位置 j--; //位置左移 } } s[i]=s[0]; //将基准放入指定位置 if(start<i) qusort(s,start,j-1); //将分割出的部分递归调用qusort函数 if(i<end) qusort(s,j+1,end);}void main(){ int a[11],i; printf("请输入10个数:\n"); for(i=1;i<=10;i++) scanf("%d",&a[i]); qusort(a,1,10); //调用函数进行排序 printf("排序后的顺序是:\n"); for(i=1;i<=10;i++) printf("%5d",a[i]); printf("\n");}
end
MrBread 2017-02-06
0 0
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- web gzip压缩
- 疯狂的采药
- (32)Java学习笔记——集合框架 / Collection 接口 / Iterator 迭代器
- Android客户端连接服务器端,向服务器端发送请求HttpURLConnection
- Java基础语法简介
- 快速排序
- Java 三大特质之多态
- Android绘图系列(四)——Canvas操作
- 报org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver: method <init>()
- Handler一定要在主线程实例化吗?new Handler()和new Handler(Looper.getMainLooper())的区别
- dbus-python服务实现及introspection功能
- 静态代理动态代理以及aop
- numpy数组创建初步
- 新的开始从今天开始