数据结构之快速排序
2014-09-02 18:08
232 查看
package com.zhiru; public class QuickSort { /* * 划分函数对快排是很重要的,在递归排序之前 * 进行划分,找出基准元素的位置【基准的初始值一般为第一个元素】。 */ public static int partition(int[]a,int low,int high) { int pivotVal=a[low]; int temp; while(low<high){ while(low<high&&a[high]>=pivotVal) high--; // a[low]^=a[high]; // a[high]=a[low]^a[high]; // a[low]^=a[high]; temp=a[low]; a[low]=a[high]; a[high]=temp; while(low<high&&a[low]<=pivotVal) low++; // a[low]^=a[high]; // a[high]=a[low]^a[high]; // a[low]^=a[high]; temp=a[low]; a[low]=a[high]; a[high]=temp; } for(int i=0;i<a.length;i++){ prt(""+a[i]," "); } prt("","\n"); return low; } public static void qsort(int[]a,int low,int high){ if(low<high){ int p=partition(a,low,high);//将序列按照初始基准值,分为两部分 prt(""+p,"\n"); qsort(a,low,p-1);//对值小于基准值的序列,进行递归快排 qsort(a,p+1,high);//对值大于基准值的序列,递归进行快排 } } public static void prt(String s,String r){ System.out.print(s+r); } }
相关文章推荐
- java数据结构之排序(交换排序(冒泡泡排序、快速排序))
- 数据结构之快速排序(C语言)
- 数据结构与算法——冒泡排序、选择排序和快速排序
- 数据结构-快速排序
- 数据结构之交换排序之快速排序(参考整理严蔚敏数据结构)
- 数据结构——快速排序原理及算法Java实现
- 数据结构之快速排序
- 数据结构与算法-快速排序
- 再看数据结构之——快速排序
- 数据结构之快速排序
- 数据结构之快速排序
- 数据结构与算法之一快速排序
- 数据结构之-快速排序
- 【数据结构与算法】内部排序之四:归并排序和快速排序(含完整源码)
- [数据结构]快速排序
- 数据结构(Java 快速排序模拟)本代码重在学习数据结构思路,代码完整性欠缺,请见谅
- 数据结构与算法之快速排序
- 【数据结构与算法】排序算法——快速排序
- [数据结构]栈的插入,归并以及快速排序
- 数据结构基础(4) --快速排序