Ada beberapa -Notasi, seperti atau dan seterusnya. Saya bertanya-tanya, apakah ada variasi dari mereka dalam kenyataan seperti atau , atau apakah itu secara matematis salah.
Atau akankah hal yang benar untuk mengatakan bahwa adalah mungkin untuk meningkatkan menjadi ? Saya tidak bisa dan tidak perlu mencari tahu runtimes belum dan saya tidak perlu memperbaiki apa pun, tapi saya perlu tahu apakah ini bagaimana Anda menggambarkan fungsi Anda dalam kenyataan.
Jawaban:
Ya,O ( 2 n2) atau O ( log( n2) ) adalah variasi yang valid.
Namun, Anda akan jarang melihatnya jika Anda akan melihatnya sama sekali, terutama pada hasil akhirnya. Alasannya adalah bahwaO ( 2 n2) adalah O ( n2) . Demikian pula, O ( log( n2) ) adalah O ( logn ) . Itu mungkin mengejutkan bagi pemula. Namun, persamaan tersebut kurang lebih merupakan alasan mengapa notasi- HAI besar diperkenalkan, untuk menyembunyikan faktor konstanta multiplikatif yang seringkali sulit dijabarkan dan relatif tidak signifikan.
Ini sama sekali bukan peningkatan jika kompleksitas waktu dari suatu algoritma diubah dariO ( 5 n2) menjadi O(3n2) atau dari Ω(5n2) menjadi Ω(3n2) , karena O(5n2) adalah O(3n2) sementara Ω(5n2) adalah Ω(3n2) . Jadi tidak benar untuk mengatakan kompleksitas waktu ditingkatkan dariO(5n2) menjadiO(3n2) . Memang benar untuk mengatakan kompleksitas waktu dari suatu algoritma ditingkatkan dari5n2 menjadi3n2 , tentu saja.
Latihan 1. Tunjukkan bahwaO(5n2)=O(3n2)=O(n2) .
Latihan 2. Tunjukkan bahwaO(logn)=O(log(n2)) .
Latihan 3. Tunjukkan bahwaΩ(n2+n)=Ω(n2) .
sumber
Alih-alih memperlakukan notasi Big Oh sebagai sihir misterius di mana Anda harus berkonsultasi dengan penyihir untuk bertanya apakah Anda dapat melakukan sesuatu, Anda harus melihat definisinya . Hormati definisi, dan kemudian lakukan apa pun yang Anda butuhkan untuk menyelesaikan pekerjaan Anda.
sumber
Notasi O Besar menggambarkan skalabilitas
Pada intinya, Notasi Big-O bukanlah deskripsi tentang berapa lama suatu algoritma perlu dijalankan. Juga bukan deskripsi tentang berapa banyak langkah, baris kode, atau perbandingan yang dibuat algoritma. Ini paling berguna ketika digunakan untuk menggambarkan bagaimana suatu algoritma timbangan dengan jumlah input.
Saya menghargai bahwa banyak dari jawaban ini pada dasarnya memberitahu Anda untuk sampai pada kesimpulan ini sendiri dengan membaca definisi Big-O. Tetapi pemahaman intuitif ini membutuhkan waktu cukup lama untuk membungkus kepala saya dan saya memberikannya kepada Anda sejelas mungkin.
sumber
sumber
Lihatlah definisi O (f (n)), dan Anda melihat bahwa misalnya O (2n ^ 2) dan O (n ^ 2) persis sama. Mengubah algoritma dari operasi 5n ^ 2 ke 3n ^ 2 adalah peningkatan 40 persen. Mengubah dari O (5n ^ 2) ke O (3n ^ 2) sebenarnya tidak ada perubahan, mereka sama.
Sekali lagi, baca definisi O (f (n)).
sumber
sumber