Apa itu Algoritma?
Kata "Algoritma" berarti "Seperangkat aturan yang harus diikuti dalam perhitungan atau operasi pemecahan masalah lainnya" atau "Sebuah prosedur untuk memecahkan masalah matematika dalam jumlah langkah yang terbatas yang sering melibatkan operasi rekursif".
Oleh karena itu, Algoritma mengacu pada urutan langkah-langkah terbatas untuk memecahkan masalah tertentu.
Algoritma bisa sederhana dan kompleks tergantung pada apa yang ingin Anda capai.
- Apa itu Algoritma? Pengenalan tentang Algoritma
- Definisi, Jenis, Kompleksitas, Contoh Algoritma
- Teknik Desain Algoritma
- Mengapa analisis Algoritma penting?
Jenis-jenis Algoritma:
Ada beberapa jenis algoritma yang tersedia. Beberapa algoritma penting adalah:
-
Algoritma Brute Force: Ini adalah pendekatan paling sederhana untuk suatu masalah. Algoritma brute force adalah pendekatan pertama yang muncul saat kita melihat suatu masalah.
-
Algoritma Rekursif: Algoritma rekursif berdasarkan rekursi. Dalam hal ini, masalah dibagi menjadi beberapa sub-bagian dan memanggil fungsi yang sama lagi dan lagi.
-
Algoritma Backtracking: Algoritma backtracking pada dasarnya membangun solusi dengan mencari di antara semua solusi yang mungkin. Dengan menggunakan algoritma ini, kita terus membangun solusi mengikuti kriteria. Setiap kali solusi gagal, kita kembali ke titik kegagalan dan membangun solusi berikutnya serta melanjutkan proses ini hingga kita menemukan solusinya atau semua solusi yang mungkin telah diperiksa.
-
Algoritma Pencarian: Algoritma pencarian digunakan untuk mencari elemen atau kelompok elemen dari struktur data tertentu. Mereka dapat memiliki berbagai jenis berdasarkan pendekatan atau struktur data di mana elemen harus ditemukan.
-
Algoritma Pengurutan: Pengurutan adalah mengatur sekelompok data dalam urutan tertentu sesuai dengan kebutuhan. Algoritma-algoritma yang membantu melakukan fungsi ini disebut algoritma pengurutan. Biasanya algoritma pengurutan digunakan untuk mengurutkan kelompok data secara meningkat atau menurun.
-
Algoritma Hashing: Algoritma hashing bekerja mirip dengan algoritma pencarian. Namun, mereka mengandung indeks dengan ID kunci. Dalam penghentian, kunci ditugaskan ke data tertentu.
-
Algoritma Divide and Conquer: Algoritma ini memecah masalah menjadi submasalah, memecahkan satu submasalah, dan menggabungkan solusi-solusi tersebut untuk mendapatkan solusi akhir. Ini terdiri dari tiga langkah berikut:
-
Bagi
-
Selesaikan
-
Gabungkan
-
-
Algoritma Greedy: Dalam tipe algoritma ini, solusi dibangun satu bagian demi satu. Solusi bagi bagian berikutnya dibangun berdasarkan manfaat langsung dari bagian berikutnya. Salah satu solusi yang memberikan manfaat paling besar akan dipilih sebagai solusi bagi bagian berikutnya.
-
Algoritma Dynamic Programming: Algoritma ini menggunakan konsep penggunaan solusi yang telah ditemukan sebelumnya untuk menghindari perhitungan berulang dari bagian yang sama dari masalah. Ini membagi masalah menjadi submasalah yang tumpang tindih yang lebih kecil dan menyelesaikannya.
-
Algoritma Randomized: Dalam algoritma acak, kami menggunakan angka acak sehingga memberikan manfaat segera. Angka acak membantu dalam menentukan hasil yang diharapkan.
Topik-topik:
- Analisis Algoritma
- Pencarian dan Pengurutan
- Algoritma Greedy
- Pemrograman Dinamis
- Pencarian Pola
- Backtracking
- Pecah dan Taklukkan
- Algoritma Geometri
- Algoritma Matematika
- Algoritma Bit
- Algoritma Graf
- Algoritma Teracak
- Cabang dan Ikatan
Analisis Algoritma:
- Analisis Asimptotik
- Kasus Terburuk, Rata-rata, dan Terbaik
- Notasi Asimptotik
- Teori Batas Bawah dan Atas
- Pengenalan Analisis Amortized
- Apa yang dimaksud dengan 'Kompleksitas Ruang'?
- Skema Aproksimasi Waktu Polinomial
- Metode Akuntansi | Analisis Amortized
- Metode Potensial dalam Analisis Amortized
Pencarian dan Pengurutan:
- Pengenalan tentang Algoritma Pencarian
- Pengenalan tentang Algoritma Pengurutan
- Algoritma Pengurutan yang Stabil dan Tidak Stabil
- Batas bawah untuk algoritma pengurutan berbasis perbandingan
- Dapatkah kompleksitas waktu eksekusi algoritma pengurutan berbasis perbandingan lebih kecil dari N logN?
- Algoritma pengurutan mana yang membuat jumlah tulisan ke memori paling sedikit?
Algoritma Greedy:
- Pengenalan tentang Algoritma Greedy
- Masalah Pemilihan Aktivitas
- Pemberian Kode Huffman
- Masalah Penjadwalan Pekerjaan
- Kuis tentang Algoritma Greedy
- Jumlah Minimum Platform yang Dibutuhkan untuk Stasiun Kereta Api / Bus
Pemrograman Dinamis:
- Pengenalan tentang Pemrograman Dinamis
- Sifat Submasalah Tumpang Tindih
- Sifat Struktur Optimal
- Subsequence Meningkat Terpanjang
- Subsequence Umum Terpanjang
- Jalur Biaya Minimum
- Penukaran Koin
- Perkalian Rangkaian Matriks
- Masalah 0-1 Knapsack
- Subsequence Palindromic Terpanjang
- Pembagian Partisi Palindromic
Pencarian Pola:
- Pengenalan tentang Pencarian Pola
- Pencarian Pola Naif
- Algoritma KMP
- Algoritma Rabin-Karp
- Pencarian Pola dengan Trie dari Semua Sufiks
- Algoritma Aho-Corasick untuk Pencarian Pola
- Algoritma Z (Algoritma Pencarian Pola Waktu Linier)
Backtracking:
- Pengenalan tentang Backtracking
- Cetak semua permutasi dari string yang diberikan
- Masalah Tur Knight
- Tikus dalam Labirin
- Masalah Ratu N
- Jumlah Subset
- Masalah Pewarnaan m
- Siklus Hamilton
- Sudoku
Pecah dan Taklukkan:
- Pengenalan tentang Pecah dan Taklukkan
- Sortir Gabungan
- Tulis pow(x, n) Anda sendiri untuk menghitung x*n
- Menghitung Inversi
- Pasangan Titik Terdekat
- Perkalian Matriks Strassen
Algoritma Geometri:
- Pengenalan tentang Algoritma Geometri
- Pasangan Titik Terdekat | Implementasi O(nlogn)
- Bagaimana cara memeriksa apakah suatu titik terletak di dalam atau di luar suatu poligon?
- Bagaimana cara memeriksa apakah dua segmen garis yang diberikan saling berpotongan?
- Diberikan n segmen garis, temukan apakah ada dua segmen yang berpotongan
- Bagaimana cara memeriksa apakah empat titik yang diberikan membentuk suatu persegi
- Penggunaan Algoritma Jarvis atau Wrapping dalam Convex Hull
Algoritma Matematika:
- Pengenalan tentang Algoritma Matematika
- Tulis Metode Efisien untuk Memeriksa apakah Sebuah Angka merupakan Kelipatan dari 3
- Tulis program untuk menambahkan dua angka dalam basis 14
- Program untuk angka Fibonacci
- Rata-rata aliran angka
- Kalikan dua bilangan bulat tanpa menggunakan operasi perkalian, pembagian, dan operator bitwise, serta tanpa perulangan
- Metode Babylonian untuk akar kuadrat
- Saring Eratosthenes
- Segitiga Pascal
- Diberikan sebuah angka, temukan palindrom terkecil berikutnya
- Program untuk menambahkan dua polinomial
- Kalikan dua polinomial
- Hitung nol di belakang faktorial suatu angka
Algoritma Bit:
- Pengenalan tentang Algoritma Bit
- Little dan Big Endian
- Deteksi tanda yang berlawanan
- Tukar bit
- Matikan bit set kanan paling kanan
- Putar bit
- Nomor lebih tinggi berikutnya dengan jumlah bit set yang sama
- Tukar dua nibble dalam sebuah byte
Algoritma Graf:
- Pengenalan tentang Algoritma Graf
- BFS, DFS
- Siklus dalam Graf
- Jalur terpendek
- MST
- Pengurutan Topologis
- Konektivitas
- Arus Maksimum
Algoritma Teracak:
- Pengenalan tentang Algoritma Teracak
- Linearitas Harapan
- Jumlah Harapan hingga Keberhasilan
- Algoritma Teracak | Set 0 (Latar Belakang Matematika)
- Algoritma Teracak | Set 1 (Pengenalan dan Analisis)
- Algoritma Teracak | Set 2 (Klasifikasi dan Aplikasi)
- Algoritma Teracak | Set 3 (Median 1/2 Aproksimasi)
- Pemilihan Reservoir
Cabang dan Ikatan:
- Cabang dan Ikatan | Set 1 (Pengenalan dengan Knapsack 0/1)
- Cabang dan Ikatan | Set 2 (Implementasi Knapsack 0/1)
- Cabang dan Ikatan | Set 3 (Masalah 8 puzzle)
- Cabang Dan Ikatan | Set 4 (Masalah Penugasan Pekerjaan)
- Cabang dan Ikatan | Set 5 (Masalah N Queen)
- Cabang Dan Ikatan | Set 6 (Masalah Salesman Keliling)