您的位置:首页 > 其它

经典算法——快速排序

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);
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: