public static int randomized_partiton(int[] array, int start, int end){
		Random r = new Random();
		int a  = r.nextInt(end);
		while(a < start){
			a = r.nextInt(end);
		}
		exchange(array,a,end);
		return partition(array,start,end);
	}