Algoritma Acak vs Rekursif
Algoritma acak menggabungkan rasa keacakan dalam logikanya dengan membuat pilihan acak selama eksekusi algoritma. Karena keacakan ini, perilaku algoritma dapat berubah bahkan untuk input tetap. Untuk banyak masalah, algoritma acak menyediakan solusi paling sederhana dan efisien. Algoritma rekursif didasarkan pada gagasan bahwa solusi untuk masalah dapat ditemukan dengan menemukan solusi untuk sub masalah yang lebih kecil dari masalah yang sama. Rekursi banyak digunakan untuk menemukan solusi untuk masalah dalam ilmu komputer dan banyak bahasa pemrograman tingkat tinggi mendukung rekursi.
Apa itu Algoritma Acak?
Algoritma acak menggabungkan rasa keacakan dengan membuat pilihan acak yang memandu pelaksanaan algoritma. Ini biasanya dilakukan dengan mengambil satu set angka acak yang dihasilkan oleh generator nomor pseudorandom sebagai input tambahan. Karena hal ini, perilaku algoritma dapat berubah bahkan untuk input tetap. Quicksort adalah algoritma yang dikenal luas yang menggunakan konsep keacakan dan memiliki waktu operasi O (n log n) terlepas dari properti input. Selanjutnya, metode konstruksi inkremental acak digunakan untuk struktur bangunan seperti convex hull dalam geometri komputasi. Dalam metode ini, titik input secara acak diijinkan dan kemudian dimasukkan satu per satu ke dalam struktur. Menerapkan algoritma acak relatif sederhana daripada menerapkan algoritma deterministik untuk masalah yang sama. Tantangan terbesar dalam merancang algoritma acak terletak dalam melakukan analisis asimptotik untuk kompleksitas waktu dan ruang.
Apa itu Algoritma Rekursif?
Algoritma rekursif didasarkan pada gagasan bahwa solusi untuk masalah dapat ditemukan dengan menemukan solusi untuk sub masalah yang lebih kecil dari masalah yang sama. Dalam algoritma rekursif, suatu fungsi didefinisikan berdasarkan versi sebelumnya dari dirinya sendiri. Penting untuk dicatat bahwa referensi diri ini harus memiliki kondisi terminasi untuk menghindari referensi itu sendiri selamanya. Kondisi penghentian diperiksa sebelum referensi itu sendiri. Langkah awal algoritma rekursif terkait dengan klausa dasar definisi rekursif masalah. Langkah-langkah yang mengikuti langkah awal terkait dengan klausa induktif masalah. Algoritma rekursif memberikan solusi yang lebih sederhana dalam banyak situasi dan lebih dekat dengan cara berpikir alami daripada algoritma iteratif untuk masalah yang sama. Tetapi secara umum, algoritma rekursif membutuhkan lebih banyak memori dan harganya mahal secara komputasi.
Apa perbedaan antara Algoritma Acak dan Rekursif?
Algoritma acak adalah algoritma yang menggunakan rasa keacakan dengan membuat pilihan acak yang dapat mempengaruhi eksekusi algoritma, sementara algoritma rekursif adalah algoritma yang didasarkan pada gagasan bahwa solusi untuk suatu masalah dapat ditemukan dengan mencari solusi untuk sub masalah yang lebih kecil dari masalah yang sama. Karena keacakan dalam algoritma acak, perilaku algoritma dapat berubah bahkan untuk input yang sama (dalam eksekusi algoritma yang berbeda). Tetapi ini tidak mungkin dalam algoritma rekursif dan perilaku algoritma rekursif akan sama untuk input tetap.