Sejarah, Definisi dan Cara Kerja Algoritma Divide and Conquer
NPM : 19312168
Kelas : IF 21 Dx
https://ftik.teknokrat.ac.id/
Sejarah Algoritma Devide dan ConquerAwal berasal algoritma ini utamanya adalah penjabaran dan penaklukan - hal penduduk asal secara berpaut-paut dipecah berperan tangkai-hal tunggal, dan memang bisa terjamah secara berulang. Pencarian biner, algoritma penurunan-dan-taklukkan di mana tangkai-hal berukuran sangkil-sangkil seserpih berasal tolok ukur aslinya, mempunyai memori yang panjang. Sementara pengertian yang eksplisit bab algoritma depan komputer lahir depan hari 1946 bagian dalam selaur bagian oleh John Mauchly, rekaan menjelang memperuntukkan kesibukan item yang diurutkan menjelang memfasilitasi pengkajian potol mudik setidaknya sebulatan Babylonia depan 200 SM. Algoritma penurunan-dan-taklukkan habis waktu lainnya adalah algoritma Euclidean menjelang menakrif penjumlah koalisi terbesar berasal dua digit pakai menyusutkan digit tertera berperan subproblem analog yang lebih ceding dan lebih ceding, yang berbunga berasal sejumlah masa SM.
Contoh dasar berasal algoritma bagi-dan-taklukkan pakai sejumlah subproblem adalah pengertian Gauss hari 1805 bab apa yang masa ini disebut algoritma Cooley – Tukey fast Fourier transform (FFT), meskipun dia tidak mempercakapkan nilaian operasinya secara kuantitatif, dan FFT tidak terbongkar ukuran sangkut bergerak didapati mudik lebih berasal tunggal masa kemudian. Algoritma D&C dua tangkai penyakit dasar yang secara tertentu dikembangkan menjelang komputer dan dianalisis pakai tepat adalah algoritma pemijatan gabungan, yang didapati oleh John von Neumann depan hari 1945.
Contoh penting lainnya adalah algoritma yang didapati oleh Anatolii A. Karatsuba depan hari 1960 [8] yang bisa memperbanyak dua skor n-nomor di O (n log 2 3) 3} )} O (n ^ 3}) pelaksanaan (bagian dalam surat Big O). algoritma ini menyanggah rabaan Andrey Kolmogorov hari 1956 bahwa pelaksanaan Ω (n 2) )} Omega (n ^ ) diperlukan menjelang instansi tertera. Sebagai tuangan lain berasal algoritma bagi-dan-taklukkan yang awalnya tidak merembet komputer, Donald Knuth mengikhlaskan adat yang biasanya digunakan auditorium stasiun menjelang merutekan sertifikat: sertifikat diurutkan ke bagian dalam saku terasing menjelang daerah geografis yang berbeda, berlawanan saku ini diurutkan awak ke bagian dalam batch menjelang tangkai-daerah yang lebih ceding, dan seterusnya sangkut dikirimkan. Ini tergantung pakai ragam radix, yang dijelaskan menjelang perkakas sortir karcis kosong sejak hari 1929.
Definisi Algoritma Devide dan Conquer
Dalam ilmu komputer, Algoritma divide and conquer adalah paradigma desain algoritma yang didasarkan pada rekursi multi-cabang. Algoritme bagi-dan-taklukkan bekerja dengan memecah masalah secara rekursif menjadi dua atau lebih sub-masalah dari jenis yang sama atau terkait, hingga masalah ini menjadi cukup sederhana untuk diselesaikan secara langsung.
Cara Kerja Algoritma Devide dan Conquer
Contoh sederhana : Misalkan, untuk menghitung total jumlah dari bilangan-bilangan yang ada di dalam sebuah list, kita dapat menggunakan perulangan sederhana
nums = [1, 2, 3, 5, 6, 7, 19, 28, 58, 18, 28, 67, 13] total = 0 for i in range (0, len(nums)): total = total + nums[i] print(total) # 255
Algoritma perulangan yang digunakan pada kode di atas memang sederhana dan memberikan hasil yang benar, tetapi terdapat beberapa masalah pada kode tersebut, yaitu perhitungan dilakukan secara linear, yang menghasilkan kompleksitas O(n). Hal ini tentunya cukup ideal untuk ukuran list kecil, tetapi jika ukuran list menjadi besar (beberapa Milyar elemen) maka perhitungan akan menjadi sangat lambat. Kenapa perhitungannya menjadi lambat? Karena nilai dari total tergantung kepada kalkulasi nilai total sebelumnya. Kita tidak dapat melakukan perhitungan total dari depan dan belakang list sekaligus, sehingga kita dapat mempercepat perhitungan dua kali lipat. Dengan kode di atas, kita tidak dapat membagi-bagikan pekerjaan ke banyak pekerja / CPU! Lalu apa yang dapat kita lakukan? Langkah pertama yang dapat kita lakukan adalah menerapkan teknik rekursif untuk membagi-bagikan masalah menjadi masalah yang lebih kecil. Jika awalnya kita harus menghitung total keseluruhan list satu per satu, sekarang kita dapat melakukan perhitungan dengan memecah-mecah list terlebih dahulu:
Komentar
Posting Komentar