快速排序
来源:互联网 发布:2017年7月进出口数据 编辑:程序博客网 时间:2024/06/11 06:41
快速排序是对冒泡排序的一种改进,它是通过一趟排序把数组分成比关键字大的和小的两部分,然后再分别对这两部分再进行这种操作,一直到只有一个关键字不能再分为止。其平均时间复杂度是O(NLOGN),但最坏情况也有O(N*N),所以不太稳定。
public class QuickSort { public static int[] quickSort(int[] A, int n) {quick(A, 0, n - 1);return A;}private static int[] quick(int[] A, int low, int high) {// TODO Auto-generated method stubif (low < high) {//长度大于一int mid = sort(A, low, high);//将数组分为大小两部分quick(A, low, mid-1);//对低子表进行递归排序quick(A, mid + 1, high);//对高子表进行递归排序}return A;}private static int sort(int[] A, int low, int high) {// TODO Auto-generated method stubint key = A[low];int i = low;int j = high;if(low<high){ while(i<j){ //比key小的移到低端 while(i<j&&A[j]>=key){ j--; }if(i<j){ A[i]=A[j]; } //比key大的移动到右端 while(i<j&&A[i]<=key){ i++; }if(i<j){ A[j]=A[i]; } } A[i]=key;//这种移动会导致中间数移动到前面或者后面但是这个位置的数还是原来的值,此时它应该变成我们的关键字的值 }return i;}}
1 0
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- Linux下使用md5sum计算和检验MD5码
- Ubuntu14.04安装mongodb
- RFID实验
- 20161016
- RtlGetSystem
- 快速排序
- html5—历史管理(通过跳转页面))
- 2016/10/15
- oracle遇到的问题汇总
- 科大讯飞板子换唤醒词方法(含win10可用adb工具)
- Linux下的文件目录管理
- DVBlast
- 如何求解问题-现代启发式方法(第8-9章)
- 欧拉工程第16题 2的1000次方的各位之和是多少?