Algoritma Brute Force Dijelaskan

Algoritme Brute Force persis seperti namanya - metode langsung untuk memecahkan masalah yang mengandalkan daya komputasi semata dan mencoba setiap kemungkinan daripada teknik canggih untuk meningkatkan efisiensi.

Misalnya, bayangkan Anda memiliki gembok kecil dengan 4 digit, masing-masing dari 0-9. Anda lupa kombinasinya, tetapi tidak ingin membeli gembok lagi. Karena Anda tidak dapat mengingat salah satu digitnya, Anda harus menggunakan metode brute force untuk membuka kunci.

Jadi Anda mengatur semua angka kembali ke 0 dan mencobanya satu per satu: 0001, 0002, 0003, dan seterusnya sampai terbuka. Dalam skenario terburuk, dibutuhkan 104, atau 10.000 percobaan untuk menemukan kombinasi Anda.

Contoh klasik dalam ilmu komputer adalah masalah penjual keliling (TSP). Misalkan seorang penjual perlu mengunjungi 10 kota di seluruh negeri. Bagaimana cara menentukan urutan kota mana yang harus dikunjungi sehingga jarak total yang ditempuh diminimalkan?

Solusi brute force cukup menghitung jarak total untuk setiap rute yang memungkinkan dan kemudian memilih yang terpendek. Ini tidak terlalu efisien karena dimungkinkan untuk menghilangkan banyak kemungkinan rute melalui algoritma yang cerdas.

Kompleksitas waktu dari brute force adalah O (m n ) , yang terkadang ditulis sebagai O (n * m). Jadi, jika kita mencari string karakter "n" dalam string karakter "m" menggunakan brute force, itu akan membawa kita mencoba n * m.

Informasi selengkapnya tentang algoritme

Dalam ilmu komputer, algoritme hanyalah seperangkat prosedur langkah demi langkah untuk memecahkan masalah yang diberikan. Algoritme dapat dirancang untuk melakukan penghitungan, memproses data, atau melakukan tugas penalaran otomatis.

Begini cara Wikipedia mendefinisikannya:

Algoritme adalah metode efektif yang dapat diekspresikan dalam ruang dan waktu yang terbatas dan dalam bahasa formal yang terdefinisi dengan baik untuk menghitung suatu fungsi. Mulai dari keadaan awal dan masukan awal (mungkin kosong), instruksi menggambarkan komputasi yang, ketika dijalankan, berlanjut melalui sejumlah keadaan berurutan yang terdefinisi dengan baik, akhirnya menghasilkan "keluaran" dan berakhir pada keadaan akhir akhir. Transisi dari satu keadaan ke keadaan berikutnya tidak selalu deterministik; beberapa algoritma, yang dikenal sebagai algoritma acak, menggabungkan masukan acak.

Ada persyaratan tertentu yang harus dipatuhi oleh algoritme:

  1. Kepastian: Setiap langkah dalam proses tersebut dinyatakan dengan tepat.
  2. Komputasi Efektif: Setiap langkah dalam proses dapat dilakukan oleh komputer.
  3. Keterbatasan: Program pada akhirnya akan berhasil dihentikan.

Beberapa jenis algoritme yang umum meliputi:

  • algoritma pengurutan
  • algoritma pencarian
  • algoritma kompresi.

Kelas algoritme termasuk

  • Grafik
  • Pemrograman Dinamis
  • Penyortiran
  • Mencari
  • String
  • Matematika
  • Geometri Komputasi
  • Optimasi
  • Miscellaneous.

Meskipun secara teknis bukan kelas algoritme, Struktur Data sering kali dikelompokkan dengannya.

Efisiensi

Algoritme paling sering dinilai dari efisiensinya dan jumlah sumber daya komputasi yang dibutuhkan untuk menyelesaikan tugasnya.

Cara umum untuk mengevaluasi algoritme adalah dengan melihat kompleksitas waktunya. Ini menunjukkan bagaimana waktu berjalan algoritme tumbuh seiring bertambahnya ukuran input. Karena algoritme saat ini harus beroperasi pada input data yang besar, penting bagi algoritme kami untuk memiliki waktu berjalan yang cukup cepat.

Mengurutkan Algoritma

Algoritme pengurutan tersedia dalam berbagai bentuk tergantung pada kebutuhan Anda. Beberapa, yang sangat umum dan banyak digunakan adalah:

Quicksort

Tidak ada diskusi pemilahan yang dapat diselesaikan tanpa pengurutan cepat. Inilah konsep dasarnya: Quick Sort

Mergesort

Algoritme pengurutan yang bergantung pada konsep bagaimana mengurutkan larik-larik digabung untuk menghasilkan satu larik yang diurutkan. Baca lebih lanjut di sini: Mergesort

Kurikulum freeCodeCamp sangat menekankan pada pembuatan algoritma. Ini karena algoritma belajar adalah cara yang baik untuk melatih keterampilan pemrograman. Pewawancara paling sering menguji kandidat pada algoritme selama wawancara kerja pengembang.

Buku tentang algoritma dalam JavaScript:

Struktur Data di JavaScript

  • Buku gratis yang mencakup Struktur Data dalam JavaScript
  • GitBook

Mempelajari Struktur Data dan Algoritma JavaScript - Edisi Kedua

  • Meliputi pemrograman berorientasi objek, pewarisan prototipe, algoritma pengurutan & pencarian, quicksort, mergesort, pohon pencarian biner dan konsep algoritma lanjutan
  • Amazon
  • ISBN-13: 978-1785285493

Struktur Data dan Algoritma dengan JavaScript: Membawa pendekatan komputasi klasik ke Web

  • Meliputi rekursi, pengurutan dan algoritma pencarian, daftar tertaut dan pohon pencarian biner.
  • Amazon
  • ISBN-13: 978-1449364939