快速排序算法的实现(递归)

快速排序算法的实现(递归)

package com.dequ;

import java.util.Arrays;

public class TestQuickSort {
	private static void quickSort(int[] arr, int low, int high) {
		if (low x && i < j) {
				j--;
			}
			// 将右侧找到的小于基准值的数填到左边坑中 ,i++,向中间移动一个位置。
			if (i < j) {
				arr[i] = arr[j];
				i++;
			}
			// 从左向右找第一个大于等于基准值的值arr[i]
			while (arr[i] < x && i < j) {
				i++;
			}
			// 将左侧找到的大于等于基准值的数填到右边坑中 ,j--,向中间移动一个位置。
			if (i < j) {
				arr[j] = arr[i];
				j--;
			}
		}
		// 使用基准值填坑,这就是基准的最终位置
		arr[i] = x;
		// 返回基准值的索引位置
		return i;
	}

	public static void main(String[] args) {
		// 创建一个数组
		int[] arr = { 7, 35, 45, 12, 85, 27, 49, 35, 29 };
		// 输出数组
		System.out.println(Arrays.toString(arr));
		// 数组排序
		quickSort(arr);
		// 输出排序后的数组
		System.out.println(Arrays.toString(arr));
	}

}

 

你可能感兴趣的:(算法)