private static void bubbleDown(ArrayList<Integer> heap, Integer currInd){
		boolean canRetL = true, canRetR = true; 
		if ((currInd*2 + 1 < heap.size()) && (heap.get(currInd) < heap.get(currInd*2 + 1))){
			canRetL = false; 
		}
		if ((currInd*2 + 2 < heap.size()) && (heap.get(currInd) < heap.get(currInd*2 + 2))){
			canRetR = false; 
		}
	
		
		if (canRetL && canRetR) return; 
		
		else {
			int childInd = currInd*2 + 1;
			int maxInd = childInd; 
			for (int i=0; i<2; i++){
				if ((childInd + i < heap.size()) && (heap.get(childInd + i) > heap.get(maxInd))){
					maxInd = childInd + i; 
				}
			}
			int tmp = heap.get(currInd); 
			heap.set(currInd, heap.get(maxInd));
			heap.set(maxInd, tmp); 
			bubbleDown(heap, maxInd); 
		}
	}