码迷,mamicode.com
首页 > 编程语言 > 详细

快速排序

时间:2017-07-13 00:58:17      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:定义   system   highlight   java   交换   从后往前   ati   sys   str   

 

public class QuickSort {
	/**
	 * 快速排序-递归实现
	 */
	public static void quickSort(int[] array, int left, int right) {
		if (left >= right)
			return;

		int pivot = array[left];// 枢纽。 定义基准值
		int i = left;
		int j = right;
		
		while (i < j) {
			//在基准处后面部分,从后往前找到首个比基准值小的数
			while (pivot <= array[j] && i < j)
				j--;
			//在基准处前面部分,从前往后找到首个比基准值大的数
			while (pivot >= array[i] && i < j)// 从左往右找到首个比基准值大的数
				i++;

			// 如果i<j,交换上面找到的两个数
			if (i < j) {
				int temp = array[i];
				array[i] = array[j];
				array[j] = temp;
			}
		}
		
		array[left] = array[i];
		array[i] = pivot;// 调整新基准值位置
		quickSort(array, left, i - 1);// 对左边的子数组进行递归
		quickSort(array, i + 1, right);// 对右边的子数组进行递归
	}

	public static void main(String[] args) {
		int[] array = { 7, 5, 3, 2, 9, 10, 8, 4, 6, 1 };
		
		int low = 0;
		int high = array.length - 1;
		quickSort(array, low, high);

		for (int i : array) {
			System.out.print(i + " ");//1 2 3 4 5 6 7 8 9 10
		}
	}
}

  

快速排序

标签:定义   system   highlight   java   交换   从后往前   ati   sys   str   

原文地址:http://www.cnblogs.com/rouqinglangzi/p/7158080.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!