2016-01-17 5 views
-1

, поэтому я пытаюсь изучить и практиковать бинарный поиск, но, к сожалению, не могу понять, как бинарный поиск может работать для списка объектов или только строк, например. Это не выглядит сложным, когда вы имеете дело с цифрами. Но как вы фактически выполняете двоичный поиск для экземпляра со списком объекта, который содержит имя свойства внутри как строковое значение.C# Бинарный поиск

+1

Почему это должно быть сложнее? –

ответ

0

Вы бы сделали это так же, как и с числами, с той лишь разницей, что вы получаете доступ к свойству экземпляра, на который вы смотрите.

Например, items[x].Value вместо items[x].

+0

Я думаю, OP говорит о том, как сравнивать строки? – Viru

1

Двоичный поиск предполагает сортировку коллекции. Таким образом, вы должны предоставить функцию compare(a,b). Эта функция вернет -1,0 или 1 в результате сравнения. Реализация функции для чисел или символов тривиальна. Но вы можете реализовать гораздо более сложную логику, которая учитывает одно или несколько свойств объекта. Пока вы предоставляете эту функцию, вы можете сортировать любую коллекцию объектов, и вы можете применить бинарный поиск в этой коллекции.

Смежные вопросы