Java排序算法(一)--快速排序(QuickSort)
来源:互联网 发布:背身护球 知乎 编辑:程序博客网 时间:2024/05/17 22:14
快排是最重要,使用最多的一种排序方法,其思想应用在了很多其他的快速查找等算法里。
主要思想是:
1.把数组的第一个元素作为基准(pivot),将数组划分;
2.比较要查找的值与pivot的大小,确定在左半边还是右半边进行递归查找
public static void quickSort(int []d,int left,int right){ //left,right均为元素位置 int low =left -1; int high =right -1; int pivot =d [low ]; //将第一个元素作为pivot while(low <high ){ while(low <high &&d[high]>=pivot) high--; d[ low]= d[ high]; while(low <high &&d[low]<=pivot) low++; d[ high]= d[low]; } d[ low]= pivot; if(left <low ) quickSort (d ,left ,low); //对left和pivot值及左边)之间的元素递归调用快排 if(high+2< right) quickSort(d,high+2,right); //对pivot值右边)和right之间的元素递归调用快排 }
快排的平均时间复杂度为O(n*log2n)。快排不是一种稳定的排序方法。
分析方法(最好情况下):n+2*n/2+4*n/4+…+n*n/n=n(lgn+1)
0 0
- Java排序算法(一)--快速排序(QuickSort)
- Java快速排序(QuickSort)算法实现
- java排序算法_014快速排序(Quicksort)
- 快速排序算法(QuickSort)
- 排序算法 之 快速排序(quicksort)
- 排序算法(QuickSort快速排序)
- 【排序算法】-快速排序(QuickSort)
- 快速排序QuickSort(Java)
- 快速排序算法QuickSort
- 快速排序算法QuickSort
- 快速排序(QuickSort)算法
- QuickSort 快速排序算法
- QuickSort算法(快速排序)
- 深入快速排序(QuickSort)(一)算法思想
- 快速排序quicksort-算法导论java实现
- java快速排序(快排)算法Quicksort
- java快速排序QuickSort
- Java 快速排序 quicksort
- Laravel 调试利器 —— Laravel Debugbar 扩展包安装及使用教程(转)
- CodeForces 452C - Magic Trick-概率
- 日经春秋 20160321
- 【Good Bye 2014C】【脑洞】New Year Book Reading 书放一摞依次看 最佳顺序使费用最小
- PTA基础编程 5-15 计算圆周率 (15分)
- Java排序算法(一)--快速排序(QuickSort)
- 【Good Bye 2014D】【期望的线性可加 基本元素累计】New Year Santa Network 树上取3点,路径权值之和的期望
- sql的case语句
- #38. 【清华集训2014】奇数国|线段树|欧拉函数
- error at ::0 can't find referenced pointcut解决办法
- 【Good Bye 2014E】【贪心 单调栈+线段树】New Year Domino 至少增加多高长度的多米诺骨牌才可推x倒y
- ABAP改表狂魔程序
- 浅谈php构造方法与构析方法
- 关于批量插入数据之我见(100万级别的数据,mysql)