经典算法——快速排序
2015-04-03 11:10
120 查看
快速排序的基本思想(分治法):
1.先从数列中取出一个数作为基准数
2.分区过程:将比基准数大的放在其右边,小的放在其左边
3.再对左右区间重复分区操作,直到各区间只有一个数
快排Java代码
package quicksorttest; import java.util.Scanner; public class QuicksortTest { static int[] array = new int[10]; public static void main(String[] args) { System.out.println("Please enter the array[10] : "); Scanner ascanner = new Scanner(System.in); for (int i = 0; i < array.length; i++) { array[i] = ascanner.nextInt(); } quickSort(0, array.length - 1); System.out.println(array.toString()); } /** * 快速排序 * * @param left * 分段数组左侧index * @param right * 分段数组右侧index */ static void quickSort(int left, int right) { if (left < right) { int i = left, j = right, key = array[left]; while (i < j) { while (i < j && array[j] >= key) { j--; } if (i < j) { // i++,先使用i,后++ array[i++] = array[j]; } while (i < j && array[i] <= key) { i++; } if (i < j) { array[j--] = array[i]; } } array[i] = key; // 递归调用 quickSort(left, i - 1); quickSort(i + 1, right); } } }
相关文章推荐
- 白话经典算法系列之六 快速排序
- 经典算法之快速排序
- 经典算法--快速排序
- 白话经典算法 快速排序
- 图示经典算法--三向切分的快速排序
- 经典算法之快速排序
- 经典算法之——快速排序
- 我的Java开发学习之旅------>Java经典排序算法之快速排序
- 经典算法学习——快速排序
- 经典算法之快速排序
- C/C++十大经典算法之快速排序
- 白话经典算法系列之——快速排序
- 白话经典算法系列之六 快速排序
- 经典算法—快速排序(Quicksort)使用详解
- 经典算法系列—— 快速排序
- 经典算法之一:快速排序
- 经典排序算法之快速排序
- php经典算法(二分法、快速排序)
- [经典算法] 快速排序
- 【从零学习经典算法系列】分治策略实例——快速排序(QuickSort)