Notasi O besar memberikan batas atas untuk suatu fungsi sedangkan Big Theta memberikan batasan yang ketat. Namun saya menemukan bahwa notasi Big O biasanya (dan informal) diajarkan dan digunakan ketika mereka benar-benar berarti Big Theta.
mis. "Quicksort adalah O (N ^ 2)" dapat berubah menjadi pernyataan yang jauh lebih kuat "Quicksort adalah Θ (N ^ 2)"
Meskipun penggunaan Big O secara teknis benar, bukankah penggunaan Big Theta yang lebih umum akan lebih ekspresif dan menyebabkan lebih sedikit kebingungan? Adakah alasan historis mengapa Big O ini lebih umum digunakan?
Catatan Wikipedia :
Secara informal, terutama dalam ilmu komputer, notasi Big O sering diizinkan untuk agak disalahgunakan untuk menggambarkan ikatan ketat asimptotik di mana menggunakan notasi Big Th Th mungkin lebih sesuai secara faktual dalam konteks tertentu.
Jawaban:
Karena Anda biasanya hanya tertarik pada kasus terburuk ketika menganalisis kinerja. Dengan demikian, mengetahui batas atas sudah cukup.
Ketika berjalan lebih cepat dari yang diharapkan untuk input yang diberikan - itu ok, itu bukan titik kritis. Sebagian besar informasi dapat diabaikan.
Beberapa algoritma, seperti dicatat oleh @Peter Taylor, tidak memiliki ikatan yang kuat sama sekali. Lihat quicksort misalnya O (n ^ 2) dan Omega (n).
Selain itu, batas yang ketat seringkali lebih sulit untuk dihitung.
Lihat juga:
sumber
Salah satu alasannya adalah bahwa ada banyak kasus di mana Θ tidak diketahui. Sebagai contoh, perkalian Matriks adalah O (n ^ 2.376) tetapi tidak ada batasan yang diketahui. Tentu, sejauh yang saya tahu, ada adalah ketat menuju Matrix perkalian, tapi kita tidak tahu nilainya.
sumber