Algoritma Brute Force adalah persis seperti - kaedah mudah untuk menyelesaikan masalah yang bergantung pada kekuatan pengkomputeran semata-mata dan mencuba setiap kemungkinan daripada teknik canggih untuk meningkatkan kecekapan.
Sebagai contoh, bayangkan anda mempunyai gembok kecil dengan 4 digit, masing-masing dari 0-9. Anda lupa kombinasi anda, tetapi anda tidak mahu membeli kunci gembok yang lain. Oleh kerana anda tidak dapat mengingat satu pun digit, anda harus menggunakan kaedah brute force untuk membuka kunci.
Oleh itu, anda menetapkan semua nombor kembali ke 0 dan mencubanya satu persatu: 0001, 0002, 0003, dan seterusnya sehingga ia dibuka. Dalam senario terburuk, memerlukan 104, atau 10,000 percubaan untuk mencari kombinasi anda.
Contoh klasik dalam sains komputer adalah masalah jurujual perjalanan (TSP). Andaikan jurujual perlu mengunjungi 10 bandar di seluruh negara. Bagaimana seseorang menentukan urutan di mana bandar-bandar tersebut harus dikunjungi sehingga jumlah jarak perjalanan dapat diminimumkan?
Penyelesaian brute force adalah dengan hanya mengira jarak keseluruhan bagi setiap laluan yang mungkin dan kemudian memilih yang terpendek. Ini tidak begitu berkesan kerana mungkin untuk menghilangkan banyak kemungkinan jalan melalui algoritma pintar.
Kerumitan masa kekuatan kasar adalah O (m n ) , yang kadang-kadang ditulis sebagai O (n * m). Jadi, jika kita mencari rentetan aksara "n" dalam rentetan aksara "m" menggunakan kekuatan kasar, ini memerlukan kita n * m percubaan.
Lebih banyak maklumat mengenai algoritma
Dalam sains komputer, algoritma hanyalah satu set prosedur langkah demi langkah untuk menyelesaikan masalah yang diberikan. Algoritma dapat dirancang untuk melakukan pengiraan, memproses data, atau melakukan tugas penaakulan automatik.
Inilah cara Wikipedia menentukannya:
Algoritma adalah kaedah yang berkesan yang dapat dinyatakan dalam jumlah ruang dan waktu yang terbatas dan dalam bahasa formal yang ditentukan dengan baik untuk mengira fungsi. Bermula dari keadaan awal dan input awal (mungkin kosong), arahan menerangkan pengiraan yang, ketika dilaksanakan, melalui sejumlah keadaan berturut-turut yang ditentukan, akhirnya menghasilkan "output" dan berakhir pada keadaan akhir akhir. Peralihan dari satu keadaan ke keadaan tidak semestinya bersifat deterministik; beberapa algoritma, yang dikenali sebagai algoritma rawak, memasukkan input rawak.Terdapat keperluan tertentu yang mesti dipatuhi oleh algoritma:
- Ketetapan: Setiap langkah dalam proses dinyatakan dengan tepat.
- Kebolehkesanan Berkesan: Setiap langkah dalam proses dapat dilakukan oleh komputer.
- Kelayakan: Program akhirnya akan berjaya ditamatkan.
Beberapa jenis algoritma biasa termasuk:
- menyusun algoritma
- algoritma carian
- algoritma pemampatan.
Kelas algoritma merangkumi
- Grafik
- Pengaturcaraan Dinamik
- Menyusun
- Mencari
- Rentetan
- Matematik
- Geometri Pengiraan
- Pengoptimuman
- Pelbagai.
Walaupun secara teknikal bukan kelas algoritma, Struktur Data sering dikelompokkan dengannya.
Kecekapan
Algoritma biasanya dinilai berdasarkan kecekapan dan jumlah sumber pengkomputeran yang mereka perlukan untuk menyelesaikan tugas mereka.
Kaedah biasa untuk menilai algoritma adalah dengan melihat kerumitan waktunya. Ini menunjukkan bagaimana masa berjalan algoritma berkembang seiring dengan bertambahnya ukuran input. Oleh kerana algoritma pada masa kini harus beroperasi pada input data yang besar, sangat penting bagi algoritma kita untuk mempunyai masa berjalan yang cukup pantas.
Algoritma Menyusun
Algoritma penyusun terdapat dalam pelbagai rasa bergantung pada keperluan anda. Beberapa yang sangat biasa dan banyak digunakan adalah:
Quicksort
Tidak ada perbincangan menyusun yang dapat diselesaikan tanpa penyusunan cepat. Inilah konsep asas: Susun Pantas
Penggabungan
Algoritma penyortiran yang bergantung pada konsep bagaimana menyusun array digabungkan untuk memberikan satu susunan tersusun. Baca lebih lanjut mengenainya di sini: Mergesort
kurikulum freeCodeCamp sangat menekankan pembuatan algoritma. Ini kerana algoritma pembelajaran adalah kaedah yang baik untuk mempraktikkan kemahiran pengaturcaraan. Penemu ramah biasanya menguji calon pada algoritma semasa temu duga kerja pembangun.
Buku mengenai algoritma dalam JavaScript:
Struktur Data dalam JavaScript
- Buku percuma yang merangkumi Struktur Data dalam JavaScript
- Buku Git
Belajar Struktur Data dan Algoritma - Edisi Kedua
- Meliputi pengaturcaraan berorientasikan objek, warisan prototaip, algoritma penyortiran & carian, quicksort, mergesort, pohon carian binari dan konsep algoritma maju
- Amazon
- ISBN-13: 978-1785285493
Struktur Data dan Algoritma dengan JavaScript: Membawa pendekatan pengkomputeran klasik ke Web
- Meliputi algoritma rekursi, pengisihan dan pencarian, senarai terpaut dan pokok carian binari.
- Amazon
- ISBN-13: 978-1449364939