logo

Vissvarīgākais algoritmu veids

Kas ir algoritms?

Algoritms ir soli pa solim procedūra problēmas risināšanai. Labam algoritmam jābūt optimizētam laika un telpas ziņā. Dažādu veidu problēmas prasa dažāda veida algoritmiskās metodes, lai tās atrisinātu visoptimālāk. Ir daudz veidu algoritmu, bet vissvarīgākie un svarīgākie algoritmi, kas jums ir nepieciešami, ir apspriesti šajā rakstā.

1. Brutālā spēka algoritms :

Šis ir visvienkāršākais un vienkāršākais algoritma veids. Brutālā spēka algoritms ir vienkārša pieeja problēmai, t.i., pirmā pieeja, kas mums ienāk prātā, redzot problēmu. Tehniski tas ir tāpat kā visu pieejamo iespēju atkārtošana šīs problēmas risināšanai.



Piemērs:

Ja ir 4 ciparu PIN atslēga. Cipari, kas jāizvēlas no 0 līdz 9, tad brutālais spēks pa vienam izmēģinās visas iespējamās kombinācijas, piemēram, 0001, 0002, 0003, 0004 un tā tālāk, līdz mēs saņemsim pareizo PIN. Sliktākajā gadījumā būs nepieciešami 10 000 mēģinājumu, lai atrastu pareizo kombināciju.

2. Rekursīvais algoritms :

Šāda veida algoritms ir balstīts uz rekursija . Rekursijā problēma tiek atrisināta, sadalot to viena veida apakšproblēmās un atkal un atkal piesaucot sevi, līdz problēma tiek atrisināta ar pamatnosacījuma palīdzību.
Dažas izplatītas problēmas, kas tiek atrisinātas, izmantojot rekursīvos algoritmus, ir Skaitļa faktoriāls , Fibonači sērija , Hanojas tornis , DFS grafikam utt.



a) Dali un iekaro algoritms :

Divide and Conquer algoritmos doma ir problēmu atrisināt divās sadaļās, pirmajā sadaļā problēma tiek sadalīta viena veida apakšproblēmās. Otrajā sadaļā ir patstāvīgi atrisināt mazāko problēmu un pēc tam pievienot apvienoto rezultātu, lai iegūtu galīgo atbildi uz problēmu.
Dažas izplatītas problēmas, kas tiek atrisinātas, izmantojot sadalīšanas un iekarošanas algoritmus, ir Binārā meklēšana , Sapludināt Kārtot , Ātrā kārtošana, Štrasena matricas reizināšana utt.

b) Dinamiskās programmēšanas algoritmi :

Šāda veida algoritms ir pazīstams arī kā iegaumēšanas tehnika jo šajā ideja ir saglabāt iepriekš aprēķināto rezultātu, lai izvairītos no tā aprēķināšanas atkal un atkal. Dinamiskajā programmēšanā sarežģīto problēmu sadaliet mazākās apakšproblēmas, kas pārklājas un saglabājiet rezultātu izmantošanai nākotnē.
Izmantojot dinamiskās programmēšanas algoritmu, var atrisināt šādas problēmas Problēma ar mugursomu , Svērtā darba plānošana , Floida Voršala algoritms utt.

c) Mantkārīgs algoritms :

Mantkārīgajā algoritmā risinājums tiek veidots pa daļai. Lēmums par nākamās daļas izvēli tiek pieņemts, pamatojoties uz to, ka tā dod tūlītēju labumu. Tā nekad neņem vērā iepriekš pieņemtās izvēles.
Dažas izplatītas problēmas, kuras var atrisināt, izmantojot alkatīgo algoritmu, ir šādas Dijkstra īsākā ceļa algoritms , Prima algoritms , Kruskala algoritms , Hafmena kodēšana utt.



d) Atkāpšanās algoritms :

Programmā Backtracking Algorithm problēma tiek atrisināta pakāpeniski, t.i., tas ir algoritmisks paņēmiens problēmu rekursīvai risināšanai, mēģinot izveidot risinājumu pakāpeniski, pa vienam gabalam, noņemot tos risinājumus, kas nevienā brīdī neatbilst problēmas ierobežojumiem. laika punkts.
Dažas izplatītas problēmas, kuras var atrisināt, izmantojot atkāpšanās algoritmu, ir šādas Hamiltona cikls , M krāsošanas problēma , N Karalienes problēma , Žurka labirintā problēma utt.

3. Randomizēts algoritms :

Randomizētajā algoritmā mēs izmantojam nejaušu skaitli.tas palīdz izlemt paredzamo rezultātu. Lēmums izvēlēties nejaušo skaitli, lai tas sniegtu tūlītēju labumu
Dažas izplatītas problēmas, kuras var atrisināt, izmantojot randomizēto algoritmu, ir ātrā kārtošana: ātrā kārtošanā mēs izmantojam izlases skaitļus, lai atlasītu rakursu.

4. Šķirošanas algoritms :

Kārtošanas algoritms tiek izmantots, lai kārtotu datus augošā vai dilstošā secībā. To izmanto arī datu sakārtošanai efektīvā un lietderīgā veidā.
Dažas izplatītas problēmas, kuras var atrisināt, izmantojot kārtošanas algoritmu, ir burbuļu kārtošana, ievietošanas kārtošana, sapludināšanas kārtošana, atlases kārtošana un ātrā kārtošana, ir kārtošanas algoritma piemēri.

5. Meklēšanas algoritms :

Meklēšanas algoritms ir algoritms, kas tiek izmantots konkrētas atslēgas meklēšanai konkrētos sakārtotos vai nešķirotos datos. Dažas izplatītas problēmas, kuras var atrisināt, izmantojot meklēšanas algoritmu, ir binārā meklēšana vai lineārā meklēšana, kas ir viens no meklēšanas algoritma piemēriem.

6. Jaukšanas algoritms :

Jaukšanas algoritmi darbojas tāpat kā meklēšanas algoritms, taču tajos ir indekss ar atslēgas ID, t.i., atslēgas un vērtības pāris. Jaukšanā mēs piešķiram atslēgu konkrētiem datiem.
Dažas izplatītas problēmas var atrisināt, izmantojot jaukšanas algoritmu paroles pārbaudē.