QuickSort

package quickSort;

import java.util.Arrays;
import java.util.Random;

public class QuickSort {
	public static void main(String[] args) {
		int arrLen = 10 ;
		int [] arr = new int [arrLen];
		if(createData(arr,arrLen,1,100)){
			System.out.println("will sorted :");
			System.out.println(Arrays.toString(arr));
			
			quickSort(arr,0,arrLen-1);
			System.out.println("sorted :");
			System.out.println(Arrays.toString(arr));
		}
	}

	private static void quickSort(int[] arr, int left, int right) {
		int index ,j ;
		if(left < right){
			index = division(arr,left,right);//seperate
			quickSort(arr, left, index-1);//sort for two side
			quickSort(arr, index+1, right);
		}
	}

	private static int division(int[] arr, int left, int right) {
		int base = arr[left];//基准元素
		while(left<right){
			while(left < right && arr[right] > base)
			--right;//从右向左找第一个比基准小的元素
			arr[left] = arr[right];
			while(left < right && arr[left] < base)
			++left;//从左向右找第一个比基准大的元素
			arr[right] = arr[left];
			
		}
		arr[left] = base;
		return left;
	}

	private static boolean createData(int[] arr, int arrLen, int i, int j) {
		
		for(int index = 0; index< arrLen ; index ++){
			if(index == arrLen){
				return true;
			}
			arr[index]   = i+new Random().nextInt(j);
		}
		return true;
	}
	
	

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值