数组排序-快速排序
2016-08-08 20:47
162 查看
public class QuickSort { public static void main(String[] args) { int a[] = { 3, 6, 1, 8, 0, 5 }; quick(a); for (int i = 0; i < a.length; i++) System.out.print(a[i] + " "); } public static void quick(int[] a) { if (a.length > 0) { // 数组是否为空 Sort(a, 0, a.length - 1); } } public static void Sort(int[] b, int low, int high) { if (low < high) { int middle = getMiddle(b, low, high); // 将list数组进行一分为二 Sort(b, low, middle - 1); // 对低字表进行递归排序 Sort(b, middle + 1, high); // 对高字表进行递归排序 } } public static int getMiddle(int[] list, int low, int high) { int tmp = list[low]; // 数组的第一个作为中轴 while (low < high) { while (low < high && list[high] >= tmp) { high--; } list[low] = list[high]; // 比中轴小的记录移到低端 while (low < high && list[low] <= tmp) { low++; } list[high] = list[low]; // 比中轴大的记录移到高端 } list[low] = tmp; // 中轴记录到尾 return low; // 返回中轴的位置 } }
相关文章推荐
- JavaScript数组的快速克隆(slice()函数)和数组的排序、乱序和搜索(sort()函数)
- {希尔排序、快速排序、动态数组、单链表、字符串转整型}大综合
- JAVA数组快速排序
- 数组快速排序,selecter
- OC5_容器类型的快速枚举_数组排序
- JavaScript数组的快速克隆(slice()函数)和数组的排序、乱序和搜索(sort()函数)
- ObjectC----字典类和集合类以及快速枚举和OC中的数组排序
- 菜鸟学算法:输入输出文件的海量数据(快速排序,数组排序)
- ASP/VBS 数组快速排序
- Objective-C中快速枚举和数组排序
- 快速排序(数组和链表版本)
- C/C++面试题(三) 推断二叉树、快速排序递归实现、递归判断数组递增
- 快速掌握PHP多维数组排序方法
- JavaScript数组的快速克隆(slice()函数)和数组的排序、乱序和搜索(sort()函数)
- Java中的数组排序方式(快速排序、冒泡排序、选择排序)
- 找包含N个元素的数组里第K大的元素(引申:快速排序、找中位数、找前K大的元素)的时间复杂度
- 假设数组中有一个数字出现的次数超过了数组长度的一半,试编程找出这个数字(消除 qosrt 快速排序 哈希)
- java快速排序1000万无序数组JVM-Xmx=256M 耗时2s
- 用模板写快速排序-数组
- int数组快速排序