快速排序
来源:互联网 发布:牛贝淘宝客3.17开源版 编辑:程序博客网 时间:2024/06/05 23:07
基本思想
设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。但是快速排序不稳定,相同的值排序后位置可能会发生改变。
代码实现
package jun.test;public class QuickSort { public static void main(String[] args) { int[] arr = {10,20,15,5,9,6,3,18}; quick(arr); for(int i=0; i<arr.length; i++){ System.out.print(arr[i] +" "); } } public static void quick(int[] arr){ if(arr.length>0){ quickSort(arr,0,arr.length-1); } } public static void quickSort(int[] arr,int low,int high){//递归排序 if(low < high){ int key = getKey(arr, low, high); quickSort(arr, low, key-1);//对左边进行排序 quickSort(arr, key+1, high);//右边进行排序 } } private static int getKey(int[] arr, int low, int high) { int key = arr[low];//数组第一个值作为关键数据 while(low < high){ while(low < high && arr[high] > key){//比关键数据大不产生交换 high--; } arr[low] = arr[high];//将比关键数据小的值放到左边 while(low < high && arr[low] < key){ low ++; } arr[high] = arr[low];//将比关键数据大的值放到右边 } arr[low] = key; return low;//返回关键数据位置 }}
阅读全文
0 0
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- MySQL在Ubuntu系统上的安装配置
- Image Smoother问题及解法
- MIT eecs 6.00 problemset2
- tomcat启动异常
- JAVA8 JDK 对字符串连接的改进
- 快速排序
- 深入分析Java Web技术内幕(修订版) 读书笔记
- Hive(2)-Hive的配置
- 神经网络游乐园
- 字符串匹配shiftand算法
- 图像处理--医疗图片的处理
- ES6/ES2015常用语法(下)
- SpringMVC 概述
- 【权威发布】360追日团队:Xshellghost技术分析——入侵感染供应链软件的大规模定向攻击