logo

Najpomembnejša vrsta algoritmov

Kaj je algoritem?

Algoritem je korak za korakom postopek za rešitev problema. Dober algoritem mora biti časovno in prostorsko optimiziran. Različne vrste problemov zahtevajo različne vrste algoritemskih tehnik, ki jih je treba rešiti na najbolj optimiziran način. Obstaja veliko vrst algoritmov, vendar so v tem članku obravnavani najpomembnejši in temeljni algoritmi, ki jih morate upoštevati.

1. Algoritem surove sile :

To je najbolj osnovna in najpreprostejša vrsta algoritma. Algoritem surove sile je neposreden pristop k problemu, tj. prvi pristop, ki nam pride na misel, ko vidimo problem. Bolj tehnično je tako kot ponavljanje vseh razpoložljivih možnosti za rešitev te težave.



primer:

Če obstaja zaklepanje 4-mestne kode PIN. Številke, ki jih je treba izbrati med 0-9, nato bo surova sila poskusila vse možne kombinacije eno za drugo, kot so 0001, 0002, 0003, 0004 in tako naprej, dokler ne dobimo pravega PIN-a. V najslabšem primeru bo potrebnih 10.000 poskusov, da bi našli pravo kombinacijo.

2. Rekurzivni algoritem :

Ta vrsta algoritma temelji na rekurzija . Pri rekurziji se problem reši tako, da se razdeli na podprobleme istega tipa in znova in znova kliče samega sebe, dokler ni problem rešen s pomočjo osnovnega pogoja.
Nekatere pogoste težave, ki se rešujejo z uporabo rekurzivnih algoritmov, so Faktoriel števila , Fibonaccijeva serija , Hanojski stolp , DFS za Graph itd.



a) Algoritem deli in vladaj :

V algoritmih razdeli in vladaj je ideja rešiti problem v dveh razdelkih, pri čemer prvi razdelek razdeli problem na podprobleme iste vrste. Drugi del je samostojno reševanje manjšega problema in nato dodajanje združenega rezultata za izdelavo končnega odgovora na problem.
Nekatere pogoste težave, ki jih rešimo z algoritmi razdeli in vladaj, so Binarno iskanje , Spoji Razvrsti , Hitro razvrščanje, Strassenovo matrično množenje itd.

b) Algoritmi dinamičnega programiranja :

Ta vrsta algoritma je znana tudi kot tehniko pomnjenja ker je pri tem ideja shraniti predhodno izračunan rezultat, da se izognemo vedno znova računanju. V dinamičnem programiranju razdelite kompleksen problem na manjše prekrivajočih se podproblemov in shranite rezultat za prihodnjo uporabo.
Naslednje težave je mogoče rešiti z algoritmom dinamičnega programiranja Problem z nahrbtnikom , Ponderirano razporejanje opravil , Floyd Warshallov algoritem itd.

c) Pohlepni algoritem :

V algoritmu Greedy se rešitev gradi del za delom. Odločitev o izbiri naslednjega dela je sprejeta na podlagi tega, da daje takojšnjo korist. Nikoli ne upošteva izbir, ki so bile sprejete prej.
Nekateri pogosti problemi, ki jih je mogoče rešiti z algoritmom Greedy, so Algoritem najkrajše poti Dijkstra , Primov algoritem , Kruskalov algoritem , Huffmanovo kodiranje itd.



d) Algoritem za povratno sledenje :

V algoritmu za sledenje nazaj se problem rešuje postopoma, tj. gre za algoritemsko tehniko za rekurzivno reševanje problemov, tako da se poskuša zgraditi rešitev postopoma, en del naenkrat, pri čemer se odstranijo tiste rešitve, ki nikakor ne izpolnjujejo omejitev problema. točka časa.
Nekatere pogoste težave, ki jih je mogoče rešiti z algoritmom za sledenje nazaj, so: Hamiltonov cikel , Problem M-barvanja , N kraljica Problem , Problem Podgana v labirintu itd.

3. Naključni algoritem :

V randomiziranem algoritmu uporabljamo naključno število. Pomaga pri odločanju o pričakovanem rezultatu. Odločitev za izbiro naključnega števila, tako da prinaša takojšnjo korist
Nekateri pogosti problemi, ki jih je mogoče rešiti z naključnim algoritmom, so Quicksort: Pri Quicksortu uporabljamo naključno število za izbiro vrtišča.

4. Algoritem za razvrščanje :

Algoritem za razvrščanje se uporablja za razvrščanje podatkov v naraščajočem ali padajočem vrstnem redu. Uporablja se tudi za urejanje podatkov na učinkovit in uporaben način.
Nekateri pogosti problemi, ki jih je mogoče rešiti z algoritmom za razvrščanje, so razvrščanje z mehurčki, razvrščanje z vstavljanjem, razvrščanje z združitvijo, razvrščanje po izboru in hitro razvrščanje so primeri algoritma za razvrščanje.

5. Algoritem iskanja :

Iskalni algoritem je algoritem, ki se uporablja za iskanje določenega ključa v določenih razvrščenih ali nesortiranih podatkih. Nekateri pogosti problemi, ki jih je mogoče rešiti z iskalnim algoritmom, so binarno iskanje ali linearno iskanje, ki je en primer iskalnega algoritma.

6. Algoritem zgoščevanja :

Algoritmi zgoščevanja delujejo enako kot iskalni algoritem, vendar vsebujejo indeks z ID-jem ključa, tj. par ključ-vrednost. Pri zgoščevanju določenim podatkom dodelimo ključ.
Nekatere pogoste težave je mogoče rešiti z algoritmom zgoščevanja pri preverjanju gesla.