快速排序代码
2016-03-29 16:50
483 查看
/** * description : 快速排序 * * @param pData * @param left * @param right * @return */ static void quicksort(int n[], int left, int right) { int dp; if (left < right) { dp = partition(n, left, right); quicksort(n, left, dp - 1); quicksort(n, dp + 1, right); } } static int partition(int n[], int left, int right) { int pivot = n[left]; while (left < right) { while (left < right && n[right] >= pivot) right--; if (left < right) n[left++] = n[right]; while (left < right && n[left] <= pivot) left++; if (left < right) n[right--] = n[left]; } n[left] = pivot; return left; }
①以第一个关键字 K 1 为控制字,将 [K 1 ,K 2 ,…,K n ] 分成两个子区,使左区所有关键字小于等于 K 1 ,右区所有关键字大于等于 K 1 ,最后控制字居两个子区中间的适当位置。在子区内数据尚处于无序状态。 ②把左区作为一个整体,用①的步骤进行处理,右区进行相同的处理。(即递归)③重复第①、②步,直到左区处理完毕。
相关文章推荐
- PHP的定时任务
- PDO概述特点及安装
- 关于在myeclipse中导入工程所遇到的问题,解决办法
- java面向对象编程杂谈
- PHP正则非字母非汉字
- bzoj3198 spring hash&容斥原理
- java智力拼图小游戏
- Python之select模块解析
- 代码规范
- uva11090Going in Cycle!!【bellman二分判负环】
- 将MATLAB的变量数据导入到C/C++程序中的方法!
- java锁的种类以及辨析
- JDBC驱动自身问题引发的FullGC
- HITS算法详解及代码实现
- JAVA打印二维码图片自定义高度
- PHP 两张图片合成一张图片(加水印)
- JavaEE_Servlet的页面跳转 和 参数的传递
- 2016.03.29///Java学习记录③
- vim的c语言环境简单配置
- Python判断远端服务器(本机Java服务器程序)端口是否通