【排序算法】快速排序
2015-08-28 09:41
225 查看
package sort.algorithm.quick; public class Quick { // 快速排序的最坏情况运行时间是O(n^2),但快速排序的平均情况运行时间和最好情况运行时间都是O(nlogn) public static void quicksort(int[] data, int first, int n) { int pivotIndex; int n1; int n2; if (n>1) { pivotIndex = partition(data, first, n); n1 = pivotIndex - first; n2 = n - n1 -1; quicksort(data, first, n1); quicksort(data, pivotIndex + 1, n2); } } private static int partition(int[] data, int first, int n) { int pivot = data[first]; // 作为中轴 int low = first; int high = first + n -1; while (low < high) { while (low < high && data[high] > pivot) { high--; } data[low] = data[high]; while (low < high && data[low] < pivot) { low++; } data[high] = data[low]; } data[low] = pivot; return low; } public static void main(String[] args) { int data[] = {80, 30, 60, 50, 40, 70, 20, 10, 5, 0}; quicksort(data,1,9); for (int i = 0; i < data.length; i++) { System.out.print(data[i] + ","); } } }
参考博文:Java实现快速排序
运行结果:
0,5,10,20,30,40,50,60,70,80,
相关文章推荐
- 社説 20150828 大学入試改革 思考力を判定できるテストに
- 调试方法
- springmvc教程
- 重载和覆盖
- 描述GDB,GNU的原代码调试器
- jquery ui,拖拽,dragsort
- Qt 解码unicode 16进制符号字符串
- POJ 2636 && HDU 2304 Electrical Outlets(水~)
- 社説 20150828 橋下氏維新離党 何とも分かりづらい内紛だ
- 白话空间统计十四:高/低值的聚类(下)
- EV代码签名证书
- 修改vs2010中html的默认模板
- android使用Notification进行通知时有时候通知栏中的项背景是灰白的的
- Windows 中_T和L
- IOS 获取苹果手机的分辨率
- 日经社説 20150828 大学入試改革はどこへいく
- 离散傅立叶变换与逆变换
- Apache2.2.21安装图解
- 0003 手动定制原版 Win7 操作系统(二)
- win10 迅雷无法下载打开就卡死无响应怎么办?