Възможно ли е да докажете, че долната граница евремевият сложност на всеки алгоритъм за търсене на сравнителен анализ за подредени списъци съществува? С други думи, има ли някакъв алгоритъм, който взима подреден списък и елемент и извежда индекса на елемента в списъка (ако се появи), трябва да предприеме определен брой стъпки?
Отговори:
1 за отговор № 1Приетият начин да направите конкретния алгоритъм, който предложихте, е двоично търсене https://en.wikipedia.org/wiki/Binary_search_algorithm, което има средна сложност на времето на O (log N). Както е отбелязано в коментар по-горе, този алгоритъм и много други харесват в едно стъпало при перфектни обстоятелства.
Като цяло, доказването, че алгоритъмът е оптимизиран е труден проблем, който включва или класифициране на алгоритъма, или привличане към тривиалност. Повече информация можете да намерите тук:
Тук:
И тук:
https://www.quora.com/Is-there-any-known-way-to-prove-that-an-algorithm-is-optimal