快速排序法
来源:互联网 发布:青山水利软件价格 编辑:程序博客网 时间:2024/06/11 10:28
/** * 快速排序法 * 其时间复杂度为O(NlogN) * @author Sailing * */public class QuickSort {static int [] intArray = {9,4,3,7,2,9,1,3,8,5};public static void quicksort(int left,int right){//设置递归出口if(left>right){return;}//假设这个序列 最左端的数为基准数int temp = intArray[left];//假想两个'检测者',前面的检测者用于检测不小于基准数数字,如果不满足就一直往后检测,直到满足条件,暂停检测;//后面的检测者用于检测不大于基准数的数字,如果不满足就一直向前检测,直到满足条件,暂停检测int i = left;int j = right;//只要前后两个移动的 '检测者' 没有相遇,就不会和基准数交换位置while(i!=j){while(intArray[j]>=temp&&i<j){j--;}while(intArray[i]<=temp&&i<j){i++;}//只要前后两个移动的 '检测者' 没有相遇,交换此时它们所在的位置的数字if(i<j){int t = intArray[i];intArray[i] = intArray[j];intArray[j] = t;}}//如果前后两个移动的 '检测者'相遇,此时和基准数交换位置intArray[left] = intArray[i];intArray[i] = temp;//递归接着排序前半部分和后半部分quicksort(left,i-1);quicksort(i+1, right);}public static void main(String[] args) {int length = intArray.length;for(int k=0;k<length;k++){System.out.print(intArray[k]+" ");}System.out.println();quicksort(0, length-1);for(int k=0;k<length;k++){System.out.print(intArray[k]+" ");}}}
阅读全文
0 0
- 排序--快速排序法
- 【排序】快速排序法
- 快速排序法排序
- 排序算法--快速排序法
- 排序算法--快速排序法
- 快速排序法
- 快速排序法
- 快速排序法
- 快速排序法
- 快速排序法qsort
- java快速排序法
- 通用快速排序法
- 快速排序法
- 快速排序法程序
- 快速排序法
- 快速排序法
- 快速排序法
- 快速排序法
- 在路由器上配置标准ACL
- 桥接模式与装饰模式的对比
- java 原生态CRUD高级封装
- 从0开始学git 第6节:给git目录的文件建立快照
- Java常用类
- 快速排序法
- Python 学习日知录(二)- 日志
- 获取ip地址
- 代码规范
- 整型int和字节数组byte相互转换
- 【SEO与页面设置细节】
- HTML&CSS快速入门(二)
- express中创建ejs项目以及引用ejs模板引擎
- 阿里巴巴开源项目nginx_concat_module部署实例