JAVA快速排序
来源:互联网 发布:淘宝品牌库查询 编辑:程序博客网 时间:2024/06/05 03:30
本文只讲算法思想和简单实现。效率问题暂不考虑。
算法思想
通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
下图是一次快速排序的全过程。
代码示例
public static void quickSort(int[] arr, int start, int end){ int low = start; int high = end; if(high<=low){ return; } //以第一个元素为基准点;保存该元素 int temp = arr[low]; while(high>low){ //先从后往前找到第一个比基准元素小的值 while(high>low && arr[high]>=temp ) high--; if(high>low){ //将比基准元素小的值,放到最左边 arr[low++] = arr[high]; } //从前往后找,找到比基准元素大的值 while(high>low && arr[low]<=temp) low++; if(high>low) //将比基准元素大的值,放到之前找到右边比基准元素小的值的位置 arr[high--] = arr[low]; } //上面while循环后,low和high相遇,把中间值放到该位置,则左边都比其小,右边都比其大 arr[low] = temp; //递归,对中间值两边的数组再进行快速排列 quickSort(arr,s,low-1); quickSort(arr,low+1,e); }
阅读全文
0 0
- 排序-快速排序-Java
- java排序之快速排序
- Java排序算法 快速排序
- 快速排序(java排序)
- java 快速排序,冒泡排序
- 算法:排序----Java快速排序
- 【交换排序】快速排序--Java
- java 插入排序+快速排序
- Java 排序之 快速排序
- java排序之快速排序
- Java排序算法:快速排序
- Java排序-快速排序
- Java排序算法:快速排序
- Java排序算法--》快速排序
- JAVA排序算法---快速排序
- Java 快速排序 归并排序
- Java排序算法--快速排序
- java 冒泡排序、快速排序
- IDEA 查看SVN历史版本信息中文乱码
- 一次mysql 5.5升级到5.6导致的ERROR 1805
- 遍历List集合的三种方法
- Mybatis应用(一)
- 用PHP实现的单链表
- JAVA快速排序
- MYSQL在导出数据过程中行数受限问题解决方案
- Android 给RecyclerView添加头部和尾部
- STM32的CRH、CRL、ODR和IDR寄存器的使用总结
- SpringBoot 中文手册 --Part IV --35 发送邮件
- 2017archsummit全球架构师峰会即将北京盛大开幕!
- linux下的解压命令大全
- Spring aop切入方法都用不到
- X86-64与x86-32