Anda di halaman 1dari 6

Auditan 180 Pengantar ? Dalam Bagian 3.1 kita telah membahas konsep algoritma?.

Kami memperkenalkan al goritma yang memecahkan berbagai masalah, termasuk mencari unsur dalam daftar dan menyortir daftar. Dala m Bagian 3.3 kita akan mempelajari jumlah operasi yang digunakan oleh algoritma. Secara khusu s, kami akan estimasikawin jumlah perbandingan yang digunakan oleh algoritma pen carian linier dan biner untuk menemukan elemen dalam urutan n elemen. Kami juga akan memperkirakan jumlah perbandingan yang digunakan oleh bubble sort dan oleh insertion sort untuk mengurutkan daftar n elemen. Waktu yang diperlukan untuk me mecahkan masalah tergantung pada lebih dari hanya jumlah operasi yang digunakann ya. Waktu juga tergantung pada perangkat keras dan perangkat lunak yang digunakan un tuk menjalankan program yang mengimplementasikan algoritma.Namun, ketika kita me ngubah perangkat keras dan perangkat lunak yang digunakan untuk mengimplementasi kan sebuah algoritma, kita dapat erat perkiraan waktu yang dibutuhkan untuk meme cahkan masalah ukuran n dengan mengalikan waktu sebelumnya diperlukan oleh sebua h konstanta. Sebagai contoh, pada superkomputer kita mungkin bisa memecahkan mas alah ukuran na juta kali lebih cepat dari yang kita dapat pada pc. Namun, faktor ini dari satu juta tidak akan tergantung pada n (kecuali mungkin dalam beberapa hal kecil). Salah satu Advantages menggunakan big-O notasi, yang kami perkenalkan di bagian ini, adalah bahw a kita dapat memperkirakan pertumbuhan fungsi tanpa khawatir tentang pengganda konstan atau istilah agar le bih kecil. Ini Artinya, dengan menggunakan big-O notasi, kita tidak perlu khawat ir tentang hardware dan software digunakan untuk mengimplementasikan algoritma. Selanjutnya, dengan menggunakan big-O notasi, kita dapat mengasumsikan bahwa ope rasi yang berbeda yang digunakan dalam algoritma mengambil waktu yang sama, yang menyederhanakan analisis jauh. Big-O notasi digunakan secara luas untuk memperkirakan jumlah operasi algo ritma menggunakan sebagai masukan yang tumbuh. Dengan bantuan notasi ini, kita d apat menentukan apakah itu praktis menggunakan algoritma tertentu untuk memecahk an masalah sebagai ukuran dari kenaikan masukan. Selain itu, menggunakan big-O notasi, kita dapat membandingkan dua algoritma untuk menentuka n mana yang lebih efisien ukuran input tumbuh. Sebagai contoh, jika kita memilik i dua algoritma untuk memecahkan masalah, salah satu menggunakan 100N 2 + 17N + 4 operasi dan yang lainnya menggunakan n 3 operasi, big-O notasi dapat membantu kita melihat bahwa algoritma pertama menggunakan operasi jauh lebih sedikit keti ka n adalah besar, meskipun menggunakan lebih operasi untuk ofn nilai kecil, sep erti n = 10. Bagian ini memperkenalkan besar-O notasi dan besar-Omega dan besarTheta terkait notasi. Kami akan menjelaskan seberapa besar-O, big-Omega, dan besar-Theta perkiraan dib angun dan membangun perkiraan untuk beberapa fungsi penting yang digunakan dalam analisis algoritma. ? Big-O? Notasi ? Pertumbuhan fungsi sering digambarkan den gan menggunakan notasi khusus?. Definisi 1 menjelaskan hal ini notasi.? DEFINISI 1? ? Letf dan g? Menjadi fungsi dari himpunan bilangan bulat atau himpunan bila ngan real ke set nyata angka. Kita katakan bahwa f (x) adalah O (g (x) jika ada konstanta C dan k sedemikian rupa sehingga ? Jika (x) 1 ::: Clg (x) 1? ? Kapan? X> k. [Hal ini dibaca sebagai "f (x) besar-oh g (x)."] Auditan 181 Konstanta C dan k dalam definisi besar-O notasi disebut saksi hubungan f (x) adalah O (g (x)). Untuk menetapkan bahwa f (x) adalah O (g (x)) kita hanya perlu satu pasang dari saksi ini hubungan. Artinya, untuk menunjukkan bahwa f (x) adalah O (g (x)), kita perlu me

nemukan hanya satu pasang konstanta C dan k, saksi-saksi, sehingga jika (x) 1 <Clg (x) 1 x setiap kali> k. Perhatikan bahwa ketika ada sepasang saksi f hubungan (x) adalah 0 (g (x)), ada tak terhingga banyaknya pasangan saksi. Untuk melihat ini, perhatikan bahwa jika C dan k adalah salah satu sepasang saksi, maka setiap pasangan C 'dan k', di mana C <C 'dan k <k', juga sepasang saksi, ka rena jika (x) 1 < Clg (x) 1 <C'lg (x) 1 x setiap kali> k '> k. Pendekatan berguna untuk menemukan sepasang saksi adalah untuk pertama memilih n ilai k dimana Jika ukuran (x) 1 dapat dengan mudah diperkirakan saat x> k dan untuk melihat ap akah kita dapat menggunakan perkiraan ini untuk menemukan nilai C yang Jika (x) 1 <Clg (x) untuk x 1> k. Pendekatan ini di ilustrasikan dalam Contoh 1. Tunjukkan bahwa f (x) = x 2 + 2x + 1 adalah O (x 2). ? Solusi:? Kami amati bahwa kita dapat dengan mudah memperkirakan ukuran f (x) s aat x> 1, karena x <x 2 dan 1 <x 2 ketika x> 1. Oleh karena itu, ? O? <X 2 + 2x + 1 <x 2 + 2x2 + x 2 = 4x 2 ? Kapan? X> 1, seperti yang ditunjukkan pada Gambar 1. Akibatnya, kita bisa meng ambil C = 4 dan k = 1 sebagai saksi untuk menunjukkan bahwa f (x) adalah O (x 2). Artinya, f (x) = x 2 + 2x + 1 <2 4 x setiap kali x> 1. (Perhatikan bahwa tidak perlu untuk menggunakan nilai absolut di sini karena semua fungsi dalam pe rsamaan positif ketika x adalah positif.) Atau, kita bisa memperkirakan ukuran f (x) saat x> 2. Ketika x> 2, kita memiliki 2x <x 2 dan 1 <x 2. Akibatnya, jika x> 2, kita memiliki ? O? <X 2 + 2x + 1 <x 2 + x 2 + x 2 = 3x 2. ? Ini? Berikut bahwa C = 3 dan k = 2 juga saksi f hubungan (x) adalah O (x 2). ?? Auditan 182 Perhatikan bahwa dalam hubungan "adalah f (x) O (x 2)," x 2 dapat digantikan ole h fungsi apapun dengan lebih besar daripada nilai x 2. Sebagai contoh, f (x) adalah 0 (x 3), f (x) adal ah 0 (x 2 + x + 7), dan sebagainya. Hal ini juga benar bahwa x 2 adalah 0 (x 2 + 2x + 1), karena x 2 <x 2 + 2x + 1 x setiap kali> I. Ini berarti bahwa C = 1 dan k = 1 menjadi saksi hubungan x 2 adalah O (x 2 + 2x + 1) . ? ? Perhatikan bahwa dalam contoh 1 kita memiliki dua fungsi?, F (x) = x 2 + 2x + 1 dan g (x) = x 2, seperti bahwa f (x) adalah O (g (x)) dan g (x) adalah O (f (x))-fakta yang terakhir meng ikuti dari ketimpangan x 2 < x 2 + 2x + 1, yang berlaku untuk semua x bilangan nonnegatif nyata. Kami mengata kan bahwa dua fungsi f (x) dan g (x) yang memenuhi kedua big-O hubungan adalah dari urutan yang sama. Kami akan kembali ke Gagasan ini kemudian di bagian ini. ? Catatan: Fakta bahwa f (x) adalah O (g (x)) kadang-kadang ditulis f (x) = o (g (x))?. Namun, tanda sama dalam notasi ini tidak mewakili kesetaraan yang sejati. Sebaliknya, n otasi ini memberitahu kita bahwa sebuah pertidaksamaan memegang berkaitan dengan nilai-nilai dari fung si f dan g untuk cukup besar angka dalam domain dari fungsi tersebut. Namun, hal itu dapat diterima untuk men ulis f (x) E O (g (x))

karena O (g (x)) merupakan himpunan fungsi yang O (g (x)). ? Big-O notasi telah digunakan dalam matematika selama lebih dari satu abad?. Da lam ilmu komputer itu secara luas digunakan dalam analisis algoritma, seperti yang akan terlihat d alam Bagian 3.3. Jerman matematikawan Paul Bachmann pertama kali diperkenalkan big-O notasi pada tahun 1 892 dalam sebuah buku penting pada nomor teori. Simbol big-O kadang-kadang disebut simbol Landau setelah Jerma n matematikawan Edmund Landau, yang menggunakan notasi ini seluruh karyanya. Pengg unaan ofbig-O notasi dalam ilmu komputer dipopulerkan oleh Donald Knuth, yang juga memperkenal kan-Q besar dan besar-8 notasi ditentukan kemudian dalam bagian ini. Ketika f (x) adalah O (g (x)), dan h (x) adalah fungsi yang memiliki nilai absol ut lebih besar dari g (x) tidak untuk nilai-nilai yang cukup besar x, ini berarti bahwa f (x) adalah O (h (x)). Dengan kata lain, fungsi g (x) dalam hubungan f (x) adalah O (g (x)) dapat digantikan oleh fungsi yang le bih besar dengan mutlak nilai-nilai. Untuk melihat ini, perhatikan bahwa jika ? Jika (x) 1 <Clg (x) 1? ? Jika? X> k, ? Dan? Jika Ih (x) 1> Ig (x) 1 untuk semua x> k, maka ? Jika (x) 1 <CLH (x) 1? ? Jika x> k?. ? Oleh karena itu, f (x) adalah O? (H (x)). Ketika besar-O notasi yang digunakan, g fungsi dalam hubungan f (x) adalah O (g (x)) yang dipilih menjadi sekecil mungkin (kadang-kadang dari satu set fungsi referensi, seperti f ungsi membentuk x n, dimana n adalah bilangan bulat positif). ?? Auditan 183 Dalam diskusi berikutnya, kita akan hampir selalu berurusan dengan fungsi yang m engambil hanya nilai-nilai positif. Semua referensi untuk nilai absolut dapat dijatuhkan ketika bekerja dengan besar-O perkiraan untuk fungsi-fungsi tersebut. Gambar 2 mengilustrasikan hubungan f (x) adalah O (g (x)). Contoh 2 mengilustrasikan bagaimana besar-O notasi yang digunakan untuk memperki rakan pertumbuhan fungsi. ? Contoh 2 Tunjukkan bahwa 7x 2 adalah O (x 3)?. ? Solusi:? Perhatikan bahwa jika x> 7, kita memiliki 7x 2 <x 3. (Kita dapat memp eroleh ketidaksetaraan ini dengan cara mengalikan kedua sisi x> 7 dengan x 2) Akibatnya., kita bisa mengambil C = 1 dan k = 7 seba gai saksi untuk membangun 2 hubungan 7x adalah O (x 3). Atau, jika x> 1, kita memiliki 7x 2 <7x 3, sehingg a C = 7 dan k = 1 juga saksi hubungan 7x 2 adalah O (x 3). ? ? Contoh 3 menggambarkan bagaimana untuk menunjukkan bahwa hubungan besar-O tida k tahan?. ? Contoh 3 Tunjukkan bahwa n 2 tidak O (n)?. ? LiIU?? ? Solusi:? Untuk menunjukkan bahwa n 2 adalah tidak 0 (n), kita harus menunjukka n bahwa tidak ada sepasang konstanta C dan k ada seperti bahwa n 2 <Cn jika n> k. Untuk melihat bahwa tidak ada konstanta tersebut, menga mati bahwa ketika n> 0 kita dapat membagi kedua sisi ketidaksamaan n 2 <C n dengan n untuk mendapatkan

ketidaksetaraan setara n <C. Kita sekarang melihat bahwa tidak peduli apa C dan k adalah, ketimpangan n <C tidak bisa berlaku untuk semua n dengan n> k. Secara khusus, setelah kami menetapkan nilai k, kita melihat bahw a jika n lebih besar dari maksimum k dan C, tidak benar bahwa n <C meskipun n> k. ? ?? Auditan 184 3-18 ? Contoh 4 Contoh 2 menunjukkan bahwa 7x 2 adalah O (x 3)?. Apakah itu juga bena r bahwa x 3 adalah O (7x 2)? ? Solusi:? Untuk menentukan apakah x 3 adalah O (7x 2), kita perlu menentukan ap akah ada konstanta C dan k sedemikian rupa sehingga x 3 <C (7x 2) setiap kali x> k. Ketidaksamaan x 3 <C (7x 2) adalah setara dengan ketidaksamaan x <7C, yang mengikuti dengan membagi ketidaksetaraan asli oleh jum lah positif x 2. Perhatikan bahwa C tidak ada yang x <7C untuk semua x> k tidak peduli apa k , karena x dapat dilakukan secara sewenang-wenang besar. Oleh karena itu tidak ada saksi dan C k ada untuk ini diusulkan big-O hubungan. Oleh karena itu, x 3 tidak O (7x 2). ? ? Sotne? Itnportant Big-O Hasil Polinomial? Sering dapat digunakan untuk memperkirakan pertumbuhan fungsi. Alihalih menganalisis pertumbuhan polinomial setiap kali terjadi, kami ingin hasil yang selalu dapat d igunakan untuk memperkirakan pertumbuhan polinomial. Teorema 1 melakukan hal ini. Ini menunjukk an bahwa istilah terkemuka jumlahnya banyak mendominasi pertumbuhannya dengan menegaskan bahwa polinomial n derajat atau kurang adalah O (x n). ? TEOREMA 1? ? Letf (x) = anx n + n _t Xn -? 1 + ... + Al + X ao, whereao, di, ..., an-I, seb uah adalah bilangan real. Kemudian f (x) adalah O (x n). ?? Auditan 185 3.2 Pertumbuhan Fungsi 185 ? Bukti: Menggunakan ketidaksetaraan segitiga (lihat Latihan 5 dalam Bagian 1.7) , jika x> 1 kita miliki? Jika (x) = 1 lanx n + n _L xn - 1 + ... + Al x + aol <Ian Ix n + la n _IIx n - 1 +. . . + + Lallx laol = Xn (Ian 1 + n-la lllx + ... + lalllx n - 1 + laollx n) <X n (Ian I + lan-II + ... + + Lall Laod. ? Ini? Menunjukkan bahwa ? Jika (x) 1 <Cx n?, ? Mana? C = Ian I + lan-II +. . . + Laol setiap kali x> 1. Oleh karena itu, para saksi C = Ian I + lan-II +. . . + Laol dan k = 1 menunjukkan bahwa f (x) adalah O (x n). <] ? Kami? Sekarang memberikan beberapa contoh yang melibatkan fungsi yang memiliki himpunan bilangan bulat positif mereka domain. ? Contoh 5 Bagaimana bisa big-O notasi dapat digunakan untuk memperkirakan jumla h dari bilangan bulat positif n pertama?? ? Solusi:? Karena setiap bilangan bulat dalam jumlah dari bilangan bulat positif n pertama tidak melebihi n, berikut bahwa

? 1? + 2 +. . . + N <n + n +. . . + N = n 2. ? Dari ketidaksetaraan ini dapat disimpulkan bahwa? 1 + 2 + 3 +. . . + N adalah O (n 2), mengambil C = 1 dan k = 1 sebagai saksi. (Dalam contoh ini domain dari fungsi dalam hubungan besar-O adalah sepera ngkat bilangan bulat positif.)? ? Dalam Contoh? 6 big-O perkiraan akan dikembangkan untuk fungsi faktorial yang logarithm. Perkiraan ini akan menjadi penting dalam analisis jumlah langkah yang dig unakan dalam penyortiran prosedur. ? CONTOH? 6 Berikan big-O perkiraan untuk fungsi faktorial dan logaritma dari fu ngsi faktorial, di mana fungsi faktorial f (n) = n! didefinisikan oleh ? N?! = 1.2.3. .... N ? Jika n adalah bilangan bulat positif, dan O?! = 1. Misalnya, ? 1?! = 1, 2! = 1,2 = 2, 3! = 1.2.3 = 6, 4 = 1.2.3.4 = 24!. ? Perhatikan? Bahwa n fungsi! tumbuh dengan cepat. Misalnya, ? 20?! = 2.432.902.008.176.640.000. ? Solusi: Perkiraan big-O untuk n?! dapat diperoleh dengan mencatat bahwa setiap istilah dalam produk tidak tidak melebihi n. Oleh karena itu, ? N?! = 1 .2 .3. ... . n ? <? N.n.n. .... N ? =? Nn. ?? Auditan 186 3-20 ? Ketidaksetaraan ini? Menunjukkan bahwa n! adalah O (nn), mengambil C = 1 dan k = 1 sebagai saksi. Mengambil logaritma dari kedua sisi ketidaksetaraan didirikan untuk n!, kita memperoleh ? Logn?! <= N lognn logn. ? Ini berarti bahwa n log?! adalah 0 (n log n), lagi mengambil C = 1 dan k = 1 s ebagai saksi. ??? ? Contoh 7 Dalam Bagian 4.1?, Kami akan menunjukkan bahwa n <2 n jika n adalah b ilangan bulat positif. Tunjukkan bahwa ketidaksetaraan ini menyiratkan bahwa n adalah O (2 n), dan menggunakan ketidaksetaraan ini untuk me nunjukkan bahwa log n adalah O (n). ? Solusi:? Menggunakan ketidaksetaraan n <2 n, kita dapat dengan cepat menyimpul kan bahwa n adalah O (2 n) dengan mengambil k = C = 1 sebagai saksi. Perhatikan bahwa karena fungsi logaritma meningkat, mengamb il logaritma (Basis 2) dari kedua sisi ketimpangan ini menunjukkan bahwa ? Logn <n?. ? Ini? Berikut bahwa ? Log n adalah O (n)?. ? (Sekali lagi kita mengambil C = k = 1 sebagai saksi.)? Jika kita memiliki logaritma dengan basis b, di mana b berbeda dari 2, kita masi h memiliki 10GB n adalah O (n) karena ? Log n? N logb n = 10GB <10GB ? Jika n adalah bilangan bulat positif?. Kami mengambil C = 1 / band log k = 1 s ebagai saksi. (Kami telah menggunakan Teorema 3 di Lampiran 2 untuk melihat bahwa 10GB n = log n / log b.)? ? Seperti disebutkan sebelumnya, big-O notasi yang digunakan untuk memperkirakan jumlah operasi yang diperlukan untuk? memecahkan masalah dengan menggunakan prosedur yang ditentukan atau algoritma. F

ungsi yang digunakan dalam estimasi seringkali meliputi: ? 1?, Logn, n, nlogn, n 2, 2 n, n! ? Menggunakan kalkulus dapat ditunjukkan bahwa setiap fungsi dalam daftar adalah lebih kecil daripada berhasil? fungsi, dalam arti bahwa rasio dari fungsi dan fungsi berhasil cenderung nol sebagai n tumbuh tanpa batas. Gambar 3 menampilkan grafik dari fungsi-fungsi ini , menggunakan skala untuk nilai-nilai fungsi yang ganda untuk setiap berturut-turut menandai pada grafik. Artinya, skala vertikal dalam grafik ini adalah logaritmik. ? Pertumbuhan COInbinations Fungsi? ? Banyak algoritma terdiri dari dua atau lebih subprocedures terpisah?. Jumlah l angkah digunakan oleh komputer untuk memecahkan a9 + 8x log x adalah O (x 2). Jelas, x 2 adalah O (3x 2 + 8x log x). Akibatnya, 3x 2 + 8x log x adalah 8 (x 2). ? ? Satu fakta yang berguna adalah bahwa istilah terkemuka polinomial menentukan o rder?. Misalnya, jika f (x) = 3x + 5 x 4 + 17x + 3 2, maka f (x) adalah urutan x 5. Hal ini dinya takan dalam Teorema 4, yang bukti yang tersisa sebagai latihan di akhir bagian ini. ? TEOREMA 4 Misalkan f (x) = anxn + an_lX n -? 1 + ... + + ALX ao, ao mana, di, ..., an adalah bilangan real dengan sebuah # - O. Maka f (x) adalah order x n. ? Contoh 13 Thepolynomials3x 8 + 10x + 7 221x2 + 1444, x 19 -? 18x 4 - 10.112, d an-x 99 +40,00 Ix 98 + 100.003 x adalah perintah x 8, X 19, dan x 99, masing-masing. ? ? Sayangnya?, Sebagai Knuth diamati, big-O notasi yang sering digunakan oleh pen ulis ceroboh dan speaker seolah-olah itu memiliki arti yang sama sebesar-Theta notasi. Ingatlah h al ini ketika Anda melihat big-O notasi yang digunakan. Kecenderungan baru-baru ini telah menggunakan besar -Theta notasi setiap kali kedua atas dan batas bawah pada ukuran fungsi yang diperlukan. ?? ??

Anda mungkin juga menyukai