Algoritmii de forță brută sunt exact cum sună – metode simple de rezolvare a unei probleme care se bazează pe puterea de calcul pură și încercarea tuturor posibilităților, mai degrabă decât a tehnicilor avansate pentru a îmbunătăți eficiența.

De exemplu, imaginați-vă că aveți un lacăt mic cu 4 cifre, fiecare de la 0 la 9. Ți-ai uitat combinația, dar nu vrei să cumperi alt lacăt. Deoarece nu vă puteți aminti niciuna dintre cifre, trebuie să utilizați o metodă de forță brută pentru a deschide încuietoarea.

Deci, setați toate numerele la 0 și le încercați pe rând: 0001, 0002, 0003 și așa mai departe până când se deschide. În cel mai rău caz, ar dura 104, sau 10.000 încearcă să-ți găsească combinația.

Un exemplu clasic în informatică este problema vânzătorului ambulant (TSP). Să presupunem că un vânzător trebuie să viziteze 10 orașe din toată țara. Cum se determină ordinea în care aceste orașe ar trebui vizitate astfel încât distanța totală parcursă să fie minimizată?

Soluția de forță brută este pur și simplu să calculați distanța totală pentru fiecare traseu posibil și apoi să o selectați pe cea mai scurtă. Acest lucru nu este deosebit de eficient, deoarece este posibil să se elimine multe rute posibile prin intermediul unor algoritmi inteligenți.

Complexitatea în timp a forței brute este O (mn), care este uneori scris ca O (n * m) . Deci, dacă ar fi să căutăm un șir de caractere „n” într-un șir de caractere „m” folosind forța brută, ne-ar lua n * m încercări.

Mai multe informații despre algoritmi

În informatică, un algoritm este pur și simplu un set de proceduri pas cu pas pentru a rezolva o problemă dată. Algoritmii pot fi proiectați pentru a efectua calcule, prelucra date sau pentru a efectua sarcini de raționament automat.

Iată cum Wikipedia le definește:

Un algoritm este o metodă eficientă care poate fi exprimată într-o cantitate finită de spațiu și timp și într-un limbaj formal bine definit pentru calcularea unei funcții. Pornind de la o stare inițială și o intrare inițială (poate goală), instrucțiunile descriu un calcul care, atunci când este executat, continuă printr-un număr finit de stări succesive bine definite, producând în cele din urmă „ieșire” și terminând într-o stare finală finală. Trecerea de la o stare la alta nu este neapărat deterministă; unii algoritmi, cunoscuți sub numele de algoritmi randomizați, încorporează intrări aleatorii.

Există anumite cerințe pe care un algoritm trebuie să le respecte:

  1. Definitivitate: Fiecare etapă a procesului este precizată.
  2. Calculabilitate eficientă: fiecare pas al procesului poate fi realizat de un computer.
  3. Finalitate: Programul se va încheia în cele din urmă cu succes.

Unele tipuri comune de algoritmi includ:

  • algoritmi de sortare
  • algoritmi de căutare
  • algoritmi de compresie.

Clasele de algoritmi includ

  • Grafic
  • Programare dinamică
  • Triere
  • In cautarea
  • Siruri de caractere
  • Matematica
  • Geometrie Computațională
  • Optimizare
  • Diverse.

Deși tehnic nu este o clasă de algoritmi, structurile de date sunt adesea grupate cu ele.

Eficienţă

Algoritmii sunt cel mai frecvent evaluați prin eficiența lor și cantitatea de resurse de calcul de care au nevoie pentru a-și îndeplini sarcina.

O modalitate obișnuită de a evalua un algoritm este de a analiza complexitatea timpului. Aceasta arată cum crește timpul de funcționare al algoritmului pe măsură ce crește dimensiunea de intrare. Deoarece algoritmii de astăzi trebuie să funcționeze pe intrări mari de date, este esențial ca algoritmii noștri să aibă un timp de funcționare destul de rapid.

Algoritmi de sortare

Algoritmii de sortare au diferite arome în funcție de necesitatea dvs. Unele, foarte frecvente și utilizate pe scară largă sunt:

Sortare rapida

Nu există nicio discuție de sortare care se poate termina fără o sortare rapidă. Iată conceptul de bază: Sortare rapida

Mergesort

Un algoritm de sortare care se bazează pe conceptul cum se sortează matricele sunt îmbinate pentru a da o matrice sortată. Citiți mai multe despre asta aici: Mergesort

Curriculumul Routech pune accentul pe crearea algoritmilor. Acest lucru se datorează faptului că învățarea algoritmilor este o modalitate bună de a exersa abilitățile de programare. Cel mai frecvent intervievatorii testează candidații pe algoritmi în timpul interviurilor de locuri de muncă pentru dezvoltatori.

Cărți despre algoritmi în JavaScript:

Structuri de date în JavaScript

  • Carte gratuită care acoperă structurile de date în JavaScript
  • GitBook

Învățarea structurilor și algoritmilor de date JavaScript – Ediția a doua

  • Acoperă programarea orientată pe obiecte, moștenirea prototipală, algoritmi de sortare și căutare, quicksort, mergesort, arbori de căutare binară și concepte avansate de algoritmi
  • Amazon
  • ISBN-13: 978-1785285493

Structuri de date și algoritmi cu JavaScript: Aducerea abordărilor clasice de calcul pe web

  • Acoperă algoritmi de recursivitate, sortare și căutare, liste legate și arbori de căutare binari.
  • Amazon
  • ISBN-13: 978-1449364939