public ListItem binarySearchArray(String targetItem) {

		System.out.println("Binary Search for " + targetItem + ".");
		ListItem currentItem = null;
		boolean isFound = false;
		int counter = 0;
		int low = 0;
		int high = items.length - 1;
		while ((!isFound) && (low <= high)) {
			int mid = Math.round((high + low) / 2);
			currentItem = items[mid];
			if (currentItem.getName().equalsIgnoreCase(targetItem)) {
				// We found it!
				isFound = true;
				return currentItem;
			} else {
				// Keep looking.
				counter++;
				if (currentItem.getName().compareToIgnoreCase(targetItem) > 0) {
					// target is higher in the list than the currentItem (at
					// mid)
					high = mid - 1;
				} else {
					// target is lower in the list than the currentItem (at mid)
					low = mid + 1;
				}
			}
		}
		if (isFound) {
			System.out.println("Found " + targetItem + " after " + counter
					+ " comparisons.");

		} else {

			System.out.println("Could not find " + targetItem + " in "
					+ counter + " comparisons.");

		}
		return null;
	}