Bug 315281 update copyrights for 3.6
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/markers/MarkerSortUtil.java
MarkerEntry hole = array[position];
		int holeIndex = position;
		holeIndex = leafSearch(array, first, holeIndex, last, comparator);
		holeIndex = bottomUpSearch(array, first, holeIndex,position,hole,last, comparator);
		array[holeIndex] = hole;
	}
	/**
	 * Percolate down the Heap: adjust left ,right, self nodes for heap starting
	 * from hole all the way down the heap 
	 * 
	 * @param array
	 * @param first
	 * @param position
	 * @param last
	 * @param comparator
	 * @return new holeIndex
	 */
	private static int leafSearch(MarkerEntry[] array, int first, int position,
			int last, Comparator comparator) {
		int holeOffset = position - first;
		int len = last - first;
		int childOffset = 2 * holeOffset + 2;
		 
		while (childOffset < len) {
			if (comparator.compare(array[first + childOffset], array[first
					+ (childOffset - 1)]) < 0)
				--childOffset;
			array[first + holeOffset] = array[first + childOffset];
			holeOffset = childOffset++;
			childOffset *= 2;