快速排序
2016-04-28 19:36
288 查看
#include<iostream> void swap( int &a, int &b ); void qSort( int array[], int left, int right ); /** 快速排序 **/ int main() { int array[] = {10,5,20,25}; qSort(array,0,3); for( int i=0; i<4; i++ ) std::cout<<array[i]<<std::endl; return 0; } int partition( int array[], int left, int right) { int pivot = array[right]; while(left != right) { while( array[left] < pivot && left < right) //从左边找到第一个大于pivot的数 left++; if(left < right) swap( array[left], array[right--] ); while( array[right] > pivot && left < right ) //从右边找到第一个小于pivot的数 right--; if( left < right ) swap( array[left++], array[right] ); } return left; } void swap( int &a, int &b ) { int c; c = a; a = b; b = c; } void qSort( int array[], int left, int right ) { if( left >= right ) return; int index = partition( array, left, right ); qSort( array, left, index -1 ); qSort( array, index + 1, right ); }
相关文章推荐
- JSP自定义标签开发入门
- linux的基本结构
- 《算法导论》第12章 二叉查找树
- Android Studio教程从入门到精通
- 构架
- Linux大文件分割split和合并cat使用方法
- Recursive Deep Models for Semantic Compositionality Over a Sentiment Treebank
- UVA 11988 Broken Keyboard 链表
- HDU 2014 青年歌手大奖赛_评委会打分(水题)
- 第8周项目2 用对象数组操作长方柱类
- uncaught typeerror cannot read property 'data' of undefined 报错原因
- 针对石家庄铁道大学官网首页的UI分析
- Apache Commons工具集简介
- 浅谈http协议
- 一些简化程序的东西,慢慢总结
- iOS http 怎么设置cookie
- 转:hadoop-2.5.1安装(包含zookeeper的配置)
- 修改表结构中的一个值
- Android手机开启开发者模式
- linux粘着位的作用