算法:快速排序(快速排序其实有很多种不同写法和代码形式)
2017-11-19 09:17
344 查看
void QuickSort(int a[],int left,int right){//ij同左出发法。 if(left<right){//同样是结合了partition和Sort。 int temp = a[left];//也是选择左一为基准数。 int i = left; //i从左一开始 for(int j = left + 1;j<=right;j++){//j从左一加一开始。 if(a[j]<temp){//小于等于或者小于都可以 。 i++; int m =a[i];//交换 a[i] = a[j]; a[j] = m; } } int b = a[i];//交换 a[i]=temp; a[left] = b; QuickSort(a,left,i-1);//递归左 ; QuickSort(a,i+1,right);//递归右 ; } } //总结:最后基准数所在都为迟出发的那个游标的下标。 (需证)
相关文章推荐
- 以下是关于对称加密算法的C#实现代码,大家可以根据需要更改不同的算法,文中以Rijndael算法为例
- warning C4407: 在指向成员表示形式的不同指针之间进行转换,编译器可能生成不正确的代码
- Path Sum 路径和(注:同时包含得到各个路径的模板:两种不同表达形式的代码)
- 算法伪代码的写法
- 从VB与C语言的插入算法代码的不同看逻辑运算的差别
- JavaScript 三种不同位置代码的写法
- warning C4407: 在指向成员表示形式的不同指针之间进行转换,编译器可能生成不正确的代码
- 快速排序的算法导论划分形式和hoare划分
- [代码发布]可逆加密,支持中文,支持密钥,支持ASP,加密后的密文每次都不同,且可随意改变算法
- [算法] 两种快速排序的while写法
- 算法-java代码实现快速排序
- [组件代码共享]可逆加密,支持中文,支持密钥,支持ASP,加密后的密文每次都不同,且可随意改变算法
- git是一种分布式代码管理工具,git通过树的形式记录文件的更改历史,比如: base'<--base<--A<--A' ^ | --- B<--B' 小米工程师常常需要寻找两个分支最近的分割点,即base.假设git 树是多叉树,请实现一个算法,计算git树上任意两点的最近分割点。 (假设git树节点数为n,用邻接矩阵的形式表示git树:字符串数组matrix包含n个字符串,每个字符串由字符'0
- warning C4407: 在指向成员表示形式的不同指针之间进行转换,编译器可能生成不正确的代码
- Object-c 纯手写方法CRC8,16,32,跟我用笔计算的一样,不过跟那些代码算法结果32位的不同
- [算法] 快速排序的非递归形式实现
- 《机器学习:算法原理与编程实践》的读书笔记:SMO部分最难,大部分代码基于Scikit-Learn,决策树其实用处不大
- 算法学习与代码实现6——快速排序
- 算法 -- Java实现快速排序(图解 + 代码实现)
- 三种不同位置的JavaScript代码的写法