Показать сообщение отдельно
  #9  
Старый 13.02.2015, 10:21
Аватар для SCrat.ORS
SCrat.ORS SCrat.ORS вне форума
Активный
 
Регистрация: 20.02.2007
Адрес: Мой адрес не дом и не улица, мой адрес 0x7С00
Сообщения: 208
Версия Delphi: 2006
Репутация: 884
По умолчанию

Результаты тестирования.

Массив 1 700 слов, 10000 циклов поиска первой, средней, последней строки.
1. Тупо перебор по всем строкам: 0,0073 мсек.
2. Бинарный поиск: 0,0656 мсек.
3. (Не знаю как назвать): 0,0036 мсек.
4. TStringList.IndexOf: 0,2713 мсек.

Массив 170 000 слов, 1000 циклов поиска первой, средней, последней строки.
1. Тупо перебор по всем строкам: 1,119 мсек.
2. Бинарный поиск: 11,93 мсек. !!!!
3. (Не знаю как назвать): 1,114 мсек.
4. TStringList.IndexOf: 27,81 мсек.

Массив 1 700 000 слов, 100 циклов поиска первой, средней, последней строки.
1. Тупо перебор по всем строкам: 12,55 мсек.
2. Бинарный поиск: Error (Stack Overflow)
3. (Не знаю как назвать): 11,71 мсек.
4. TStringList.IndexOf: 275,88 мсек.

Время указано среднее на 1 поиск.

Значит получается что эффективнее всего использовать тупо перебор всех строк, так как он по времени не на много отстает от лидера, но его преимущество в том, что массив не нужно сортировать, а соответственно не затрачивается время на сортировку.
__________________
Програмистами не рождаются, ими становятся!
Ответить с цитированием