Ungkapan waktu minimum dan waktu maksimum agak menyesatkan di sini. Ketika kita berbicara tentang notasi O besar, ini bukan waktu yang sebenarnya kita minati, ini adalah bagaimana waktu bertambah ketika ukuran input kita semakin besar. Dan biasanya waktu kasus rata-rata atau terburuk yang kita bicarakan, bukan kasus terbaik , yang biasanya tidak bermakna dalam menyelesaikan masalah kita.
Menggunakan pencarian larik dalam jawaban yang diterima untuk pertanyaan lain sebagai contoh. Waktu yang diperlukan untuk menemukan angka tertentu dalam daftar ukuran n rata-rata n / 2 * some_constant. Jika Anda memperlakukannya sebagai suatu fungsi f(n) = n/2*some_constant
, itu meningkat tidak lebih cepat dari g(n) = n
, dalam arti seperti yang diberikan oleh Charlie. Juga, itu meningkat tidak lebih lambat dari g(n)
keduanya. Oleh karena itu, g(n)
sebenarnya merupakan batas atas dan batas bawah f(n)
dalam notasi Big-O, jadi kompleksitas pencarian linier adalah tepat n , yang berarti Theta (n).
Dalam hal ini, penjelasan dalam jawaban yang diterima untuk pertanyaan lain tidak sepenuhnya benar, yang mengklaim bahwa O (n) adalah batas atas karena algoritme dapat berjalan dalam waktu konstan untuk beberapa input (ini adalah kasus terbaik yang saya sebutkan di atas, yang sebenarnya bukan yang ingin kami ketahui tentang waktu berjalan).