У меня есть массив объектов, и я хочу найти свойство date/day (пользователь решает) с помощью двоичного поиска.Бинарный поиск со строками
** EDIT: Я прочитал значения SharesArray [mid] .Date (и дневные значения) из текстового файла и примеры: 05/02/2015, 14/10/2014. Значение searchString будет получено из пользователь, но будет в том же формате, что и значения даты. **
Это моя первая попытка, так что я просто пытаюсь свойство даты:
int high, low, mid;
high = SharesArray.Length - 1;
low = 0;
while (low <= high)
{
mid = (low + high)/2;
if (String.Compare(SharesArray[mid].Date, searchString, true) == 0)
{
break;
}
else if (String.Compare(SharesArray[mid].Date, searchString, true) > 0)
{
high = mid - 1;
}
else if (String.Compare(SharesArray[mid].Date, searchString, true) < 0)
{
low = mid + 1;
}
Я также попробовал последний еще, если заявление, как только еще и что не делает никакой разницы.
Кроме того, имеет значение, каков круг круглых строк1 и string2 в части String.Compare?
Порядок строк в вашей String.Compare не имеет значения. –
Не могли бы вы показать нам, как 'Date' определяется в' SharesArray' и дает нам пример того, какое значение может иметь значение 'searchString' и каковы возможные значения' SharesArray [mid] .Date'? –
Я тоже так думал, но когда я использовал точку останова и наблюдал за потоком контроля, он менялся на разные элементы в моем массиве, когда я их менял. – GratefulDemon