基本算法——快速排序
来源:互联网 发布:洁厕剂的知乎 编辑:程序博客网 时间:2024/06/06 02:45
每次将传入的该段的第一个节点保存,依次从尾开始找到一个比该保存的数小的,然后放到第一个节点处,然后从头往后找比保存数大的,然后放到上一个节点处。
依次进行。直到头和尾指针相遇,表示前面都是比保存的数小的,后面都是比保存的数大的。而该位置就是保存数的位置。
然后依次递归。则可以了
public void quickSort(int[]array,int left,int right) {int l = left;int r = right;if(l<r){int temp=array[l];while(l<r){while(r>l&&array[r]>temp){//直到选到小于temp的数,过滤掉大于它的数。r--;}if(array[r]<temp){//也可以写成l<rarray[l]=array[r];l++;}while(l<r&&array[l]<temp){l++;}if(array[l]>temp){//也可以写成l<rarray[r]=array[l];r--;}}//whilearray[l]=temp;quickSort(array, left, l-1);quickSort(array, l+1, right);}//if}
发现了上面 必须注释处写成l<r。不然对于数组中有重复元素,不能。 就算上面写成>=与<=也不行。特别注意
阅读全文
0 0
- 基本算法——快速排序
- 基本算法——快速排序
- 基本排序算法(2)——快速排序
- 基本排序算法--快速排序
- 排序算法—快速排序
- 排序算法—快速排序
- 排序算法进阶(一)——快速排序算法(基本类型与复杂类型)
- 快速排序-基本算法篇
- 基本算法之快速排序
- java基本排序算法总结(二)——快速排序法
- 基本排序算法之快速排序
- java基本排序算法之快速排序
- 三种基本排序算法+快速排序
- 【算法】——快速排序
- 算法——快速排序
- 算法——快速排序
- 算法——快速排序
- 算法——快速排序
- Freemarker的使用
- mysql插入记录字符中包含中文报错的问题解决方法
- 【JavaScript】apply&call
- JDK8 Lambda表达式教程
- 关于请求转发之后出现中文乱码的情况之一
- 基本算法——快速排序
- 【算法题】实现循环队列
- 造数据时的快速生成方法
- 考研逻辑整理
- windows主机wifi的条件下,linux虚拟机如何进行网络设置
- 分布式相关论文
- spring MVC流程图
- POJ 2586 Y2K Accounting Bug (贪心)
- WindowsJNDI对文件用BufferedReader进行读取