快速排序(java实现)
来源:互联网 发布:excel两个表格数据对比 编辑:程序博客网 时间:2024/06/05 06:50
1.基本概念:
快速排序是比较常用的一种排序方式。其时间复杂度为:平均时间O(nlogn),最坏情况O(n^2)。 稳定性:不稳定的排序方法。
2.基本思想:
通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
3.代码:
public class quickOrder { //输出 public static void print(int array[]){ for(int i=0;i<array.length;i++){ if(i!=array.length-1){ System.out.print(array[i]+","); }else { System.out.println(array[i]); } } } //排序 public static void order(int array[],int left,int right){ int high=right; int low=left; //一般将数组中的第一个元素作为key值 int key=array[low]; //排序之前判断数组中最小元素的下标的是否小于最大元素的下标,若不成立,则递归结束 if(low<high){ //每次一趟快排结束标志 while(low<high){ //从右向左寻找比目标值小的元素 while(low<high && array[high]>key){ high--; } array[low]=array[high]; //从左向右寻找比目标值大的元素 while(low<high && array[low]<key){ low++; } array[high]=array[low]; } array[low]=key; //一次结束后将其分为两部分,继续排序 order(array, left, low-1);//左边 order(array, low+1, right);//右边 } } public static void main(String[] args) { // TODO Auto-generated method stub int a[]=new int[]{24,15,36,45,5,89,42,31,62,51,99,1,102,85}; //初始顺序 quickOrder.print(a); //进行排序 order(a, 0, a.length-1); //排序后顺序 quickOrder.print(a); }}
4.备注:
有问题的地方还请各位多多包含,不吝赐教。
0 0
- 快速排序实现(JAVA)
- 快速排序(java实现)
- 快速排序(java实现)
- 快速排序(java实现)
- 快速排序实现(Java)
- 快速排序(java实现)
- 快速排序(java实现)
- 快速排序(Java实现)
- Java实现数组的快速排序(快速排序算法)
- java实现快速排序
- 快速排序Java实现
- 快速排序java实现
- 快速排序JAVA实现
- Java实现快速排序
- 快速排序--Java实现
- 快速排序java实现
- java实现快速排序
- java实现快速排序
- 一般图的匹配题集
- Java复制构造函数
- Two Sum(初谈双指针)
- C++获取某一任意字符串每一个字符连续出现次数并打印在控制台上
- LeetCode *** 20. Valid Parentheses
- 快速排序(java实现)
- 第七周 项目2 友元类
- WebView.HitTestResult
- Dagger2 简单教程,一步一步教你怎么写!
- NAT、用iptables配置NAT
- best time to buy and sell stocks III
- 背包问题:01 完全 多重
- java中的条件运算符
- 算法与数据结构 - 0/1背包问题