Результаты тестирования.
Массив 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 поиск.
Значит получается что эффективнее всего использовать тупо перебор всех строк, так как он по времени не на много отстает от лидера, но его преимущество в том, что массив не нужно сортировать, а соответственно не затрачивается время на сортировку.
__________________
Програмистами не рождаются, ими становятся!
|