После сортировки было бы тривиально использовать ListIterator , чтобы выполнить итерацию списка и выполнить сравнение. Если вы пропустили сравнение, вы знаете, что можете остановить итерацию, поскольку ваш список отсортирован.
Обратите внимание, что сортировка является относительно дорогой операцией, поэтому было бы более эффективно просто выполнять итерацию списка от начала до конца при выполнении сравнения.
Вы также можете использовать алгоритм, который проверяет средний (list.size()/2
) элемент, затем снова перемещается вверх или вниз, наполовину сокращая набор результатов, и так далее, пока не найдете точку схождения.
например. поиск "f"
со списком {"a", "b", "c", "d", "e", "f", "g"}
будет выполнять сравнение по среднему элементу "d"
, а затем посмотреть на средний "f"
элемент второй половины {"e", "f", "g"}
, где совпадение будет найдено немедленно, и алгоритм может остановиться.