private void sortHeap(int[] array) {
		if(array==null || array.length==0) {
			return;
		}

		for(int i=array.length-1;i>0;i--) {
			int biggest = array[0];
			array[0] = array[i];
			array[i] = biggest;
			
			// percolateDown
			int hole = 0+1;
			int child = 0;
			int current = array[hole-1];
			for(;hole*2<=i;hole=child) {
				child = hole*2;
				if(child!=i&&array[child]>array[child-1]) {
					child++;
				}
				if(current<array[child-1]) {
					array[hole-1] = array[child-1];
				} else {
					break;
				}
			}
			array[hole-1] = current;
		}
	}