快速排序
来源:互联网 发布:centos改为中文 编辑:程序博客网 时间:2024/06/14 05:02
/*快速排序*/
基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
#include<stdio.h>int Division(int a[], int left, int right)/*分割*/{int base = a[left];/*我们以第一个元素为基准*/ while(left < right)/*直到left == right*/{while(left < right && a[right] > base)/*如果大于基元素,则不需要交换,往前继续搜索*/--right;a[left] = a[right];/*一直找知道找到比base小的*/while(left < right && a[left] < base)/*从左向右找,找比base打的元素*/++left;a[right] = a[left];}a[left] = base;return left;}/*第一趟排序将比基元素小的放在基元素前面,比基元素打的元素放在基元素后面*/void QuickSort(int a[], int left, int right){int i;if(left<right){i=Division(a,left,right);QuickSort(a,left,i-1);QuickSort(a,i+1,right);}}int main(){int i = 0;int a[] = {6,2,7,3,8,9};QuickSort(a, 0, 6);for(i = 0; i < 6; i++){printf("%d ",a[i]);}return 0;}
0 0
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 分布式系统事务一致性解决方案
- MySQL运行原理与基础架构
- talent-aio1.0.2 发布,让天下没有难开发的即时通讯
- 关于RIDE桌面快捷方式创建失败问题解决
- spring mvc框架源码分析(三)-执行请求路径所对应方法并返回
- 快速排序
- 安装PHP的扩展bcmath
- Oracle截取字符串
- Intellij idea 调试技巧
- 让网络请求简单点——Volley框架(上)
- 大话数据结构之:简单选择排序
- 汉诺塔问题
- 表格嵌套时,即表格中插入表格,边框重叠的两种实现方式
- 走迷宫