private static void adjust(Comparable[] a ,int i,int length){ 
		
		int left = 2*i + 1,
			right= 2*i + 2 ;
		if(left >= length && right >= length) return ; 
		int max = i;
		
		if(left < length && less(a[max],a[left]))
			max = left;
		if(right <length && less(a[max],a[right]))
			max = right ;
		if(max!=i){
			exch(a,i,max);
			adjust(a,max,length);
		}
	    
	}