Alvin Tjondrowiguno
Desain dan Analisis Algoritma
1. Perkenalan
• Resep •
Secara umum didefinisikan sebagai:
• Hasil yang diinginkan
• Masukan
• Prosedur langkah demi langkah untuk menyelesaikan masalah tertentu
• Urutan langkah/prosedur
Ulasan: Apa itu “Algoritma”?
• Buat wadah dengan nilai awal 0
• Untuk setiap nomor dalam daftar:
Prosedur langkah demi langkah:
Masukan: Daftar angka
• Tambahkan nomor ke wadah
• Kembalikan nomor dalam wadah
Output yang diinginkan: Jumlah semua angka dalam daftar
Contoh Algoritma: Jumlah
7
10
4 8
3
5
37
• Efisien Dalam hal sumber daya:
• Waktu
• Memori
• Dihentikan dengan benar
• Layak
• Benar
Pastikan algoritmanya adalah:
• ...
• Bandwidth
Mengapa Menganalisis Algoritma?
Perkalian Bilangan Bulat
Contoh Soal:
• Keluaran: Produk X *
• Input: 2 n-digit angka X dan Y
1 2 3 1 2 3 4 5 6 7 8
Y
Perkalian Bilangan Bulat
7 0 0 6 6 5 2
9 8 7 2
8 6 3 8
7 4 0 4
6 1 7 0
• Menambahkan 2 angka satu digit Operasi dasar perkalian bilangan bulat:
• Mengalikan 2 angka satu digit
Perkalian Integer: Analisis
Operasi Dasar yang terdefinisi dengan baik
8
Tidak ada barang bawaan
3
operasi dasar
Lebih tepatnya:
1 dibawa (+)
*
Paling banyak n operasi dasar 8
*
n
operasi dasar 8
*
4
operasi dasar
- 4 - 3 - *
2 - 1
8
2 dibawa (+) 3 dibawa (+)
Ini untuk n = 4 digit
Bagaimana jika n bukan 4?
9 8 7 2 7 4 0 4
5 6 7 8 1 2 3 4
8 6 3 8 6 1 7 0
7 0 0 6 6 5 2
Perkalian Integer: Analisis
Analisis Kasus Terburuk
Analisis Asimptotik
Paling banyak 2n2 operasi dasar Paling banyak 2n
operasi dasar
Tepatnya n baris
Perkalian Integer: Analisis
9 8 7 2 8 6 3 8 7 4 0 4 6 1 7 0
1 2 3 4 5 6 7 8
7 0 0 6 6 5 2
operasi dasar
Paling banyak, ada 2n2
operasi dasar Paling banyak
ada n tambahan untuk setiap digit
Paling banyak 2n2
Jumlah
penambahan Paling banyak
ada 2n digit 1 2 3 4 3 1 0
9 8 7 2 8 6 3 8
5 6 7 8 1 2 3 4
6 1 7 0
7 0 0 6 6 5 2 7 4 0 4
Perkalian Integer: Analisis
Analisis Kasus Terburuk
Abaikan faktor konstan
2
4n2
Waktu berjalan terakhir dari algoritma Perkalian Integer kami adalah n
“Kompleksitas Waktu” dari algoritma ini adalah: O(n2 )
4 adalah faktor konstan,
jadi kita bisa mengabaikannya
2n2 + 2n2 = 4n2 , di mana n adalah jumlah digit bilangan bulat (ukuran masukan) Total waktu berjalan dari algoritma Perkalian Integer “Kelas Tiga” adalah:
Notasi “O Besar ”.
Perkalian Integer: Analisis
Algoritma Cepat ÿ Waktu berjalan kasus terburuk bertambah lambat seiring dengan ukuran input
Seberapa Baguskah “O(n2 )”?
Kita akan membahas kembali Perkalian Bilangan Bulat nanti!
Bisakah kita berbuat lebih baik? Dibandingkan dengan O(n2 )
Prinsip Dasar dari
Analisis Algoritma
1. Analisis Kasus Terburuk
Analisis Algoritma: Prinsip Panduan
• Secara umum, lebih mudah dilakukan dibandingkan analisis kasus rata-rata, yang memerlukan distribusi input diperhitungkan
• Hasil analisis berlaku untuk semua jenis masukan, tidak ada pengecualian, tidak ada asumsi
(Kasus terburuk dalam hal masukan algoritma)
2. Analisis Asimptotik
Analisis Algoritma: Prinsip Panduan
• Analisis relatif tidak diperlukan
• Dengan masukan yang besar, efisiensi menjadi lebih penting
• Dengan masukan yang kecil, algoritma yang benar tidak masalah
(Fokus pada input yang sangat besar)
• Algoritme yang tidak efisien dapat menyebabkan banyak masalah
3. Abaikan faktor konstan dan suku tingkat rendah (Dalam konteks waktu berjalan sebagai fungsi dari ukuran masukan)
Analisis Algoritma: Prinsip Panduan
• Suku tingkat rendah menjadi tidak signifikan dengan masukan yang lebih besar
• Hilangnya akurasi analisis dapat diabaikan
• Konstanta bergantung pada faktor eksternal (kompiler, pemrogram, dll.)
• Lebih mudah untuk membandingkan dan menganalisis
4. Operasi Dasar yang Terdefinisi dengan Baik
Analisis Algoritma: Prinsip Panduan
• Satuan waktu berjalan konvensional (detik, milidetik, dll.) bergantung pada
• Lebih tepat untuk membandingkan algoritma daripada “implementasi faktor eksternal (kompiler, perangkat keras, dll.)
(Gunakan operasi dasar sebagai satuan waktu berjalannya algoritma)
algoritma”
Minggu depan: Teknik Dasar - Rekursi
Terima kasih untuk mendengarkan!
Itu saja untuk hari ini!