logo

Belangrijkste type algoritmen

Wat is een algoritme?

Een algoritme is een stapsgewijze procedure om een ​​probleem op te lossen. Een goed algoritme moet geoptimaliseerd zijn in termen van tijd en ruimte. Verschillende soorten problemen vereisen dat verschillende soorten algoritmische technieken op de meest geoptimaliseerde manier worden opgelost. Er zijn veel soorten algoritmen, maar de belangrijkste en fundamentele algoritmen die je nodig hebt, worden in dit artikel besproken.

1. Brute Force-algoritme :

Dit is het meest basale en eenvoudigste type algoritme. Een Brute Force-algoritme is de ongecompliceerde benadering van een probleem, dat wil zeggen de eerste benadering die in ons opkomt bij het zien van het probleem. Meer technisch gezien is het net zoiets als het herhalen van alle beschikbare mogelijkheden om dat probleem op te lossen.



Voorbeeld:

Als er een slot van 4-cijferige pincode is. De te kiezen cijfers van 0-9, waarna het brute geweld alle mogelijke combinaties één voor één zal proberen, zoals 0001, 0002, 0003, 0004, enzovoort, totdat we de juiste pincode krijgen. In het ergste geval zijn er 10.000 pogingen nodig om de juiste combinatie te vinden.

2. Recursief algoritme :

Dit type algoritme is gebaseerd op herhaling . Bij recursie wordt een probleem opgelost door het op te splitsen in deelproblemen van hetzelfde type en steeds opnieuw de eigen identiteit te noemen totdat het probleem is opgelost met behulp van een basisvoorwaarde.
Een veelvoorkomend probleem dat wordt opgelost met behulp van recursieve algoritmen is Faculteit van een getal , Fibonacci-reeks , Toren van Hanoi , DFS voor grafiek , enz.



A) Verdeel en heers algoritme :

Bij verdeel-en-heers-algoritmen is het de bedoeling om het probleem in twee delen op te lossen; het eerste deel verdeelt het probleem in deelproblemen van hetzelfde type. In het tweede deel wordt het kleinere probleem zelfstandig opgelost en vervolgens het gecombineerde resultaat opgeteld om tot het definitieve antwoord op het probleem te komen.
Een veelvoorkomend probleem dat kan worden opgelost met behulp van Divide and Conquers-algoritmen is: Binaire zoekopdracht , Sortering samenvoegen , Snel sorteren, Strassen's matrixvermenigvuldiging , enz.

B) Dynamische programmeeralgoritmen :

Dit type algoritme wordt ook wel het memorisatie techniek omdat het hier de bedoeling is om het eerder berekende resultaat op te slaan om te voorkomen dat het steeds opnieuw wordt berekend. Bij dynamisch programmeren verdeelt u het complexe probleem in kleinere overlappende deelproblemen en bewaar het resultaat voor toekomstig gebruik.
De volgende problemen kunnen worden opgelost met behulp van het Dynamic Programming-algoritme Knapzakprobleem , Gewogen taakplanning , Floyd Warshall-algoritme , enz.

C) Hebzuchtig algoritme :

In het Greedy Algorithm wordt de oplossing deel voor deel opgebouwd. De beslissing om het volgende onderdeel te kiezen wordt genomen op basis van het feit dat dit een onmiddellijk voordeel oplevert. Er wordt nooit rekening gehouden met de keuzes die eerder zijn gemaakt.
Enkele veelvoorkomende problemen die kunnen worden opgelost via het Greedy Algorithm zijn: Dijkstra Kortste Pad Algoritme , Het algoritme van Prim , Het algoritme van Kruskal , Huffman-codering , enz.



D) Backtracking-algoritme :

Bij Backtracking Algorithm wordt het probleem op een incrementele manier opgelost, d.w.z. het is een algoritmische techniek om problemen recursief op te lossen door te proberen een oplossing stapsgewijs op te bouwen, stuk voor stuk, waarbij die oplossingen worden verwijderd die op geen enkel moment aan de beperkingen van het probleem voldoen. tijdstip.
Enkele veelvoorkomende problemen die kunnen worden opgelost via het Backtracking-algoritme zijn: Hamiltoniaanse cyclus , M-kleurprobleem , N Koningin Probleem , Rat in doolhof Probleem , enz.

3. Gerandomiseerd algoritme :

In het gerandomiseerde algoritme gebruiken we een willekeurig getal. Dit helpt bij het bepalen van de verwachte uitkomst. De beslissing om een ​​willekeurig getal te kiezen, zodat dit het onmiddellijke voordeel oplevert
Enkele veelvoorkomende problemen die kunnen worden opgelost via het gerandomiseerde algoritme zijn Quicksort: In Quicksort gebruiken we het willekeurige getal voor het selecteren van het draaipunt.

4. Sorteeralgoritme :

Het sorteeralgoritme wordt gebruikt om gegevens in oplopende of aflopende volgorde te sorteren. Het wordt ook gebruikt om gegevens op een efficiënte en nuttige manier te ordenen.
Enkele veelvoorkomende problemen die kunnen worden opgelost met het sorteeralgoritme zijn Bubble-sortering, invoegsortering, samenvoegsortering, selectiesortering en snelle sortering. Dit zijn voorbeelden van het sorteeralgoritme.

5. Algoritme zoeken :

Het zoekalgoritme is het algoritme dat wordt gebruikt voor het zoeken naar de specifieke sleutel in bepaalde gesorteerde of ongesorteerde gegevens. Enkele veel voorkomende problemen die kunnen worden opgelost via het zoekalgoritme zijn binair zoeken of lineair zoeken is een voorbeeld van een zoekalgoritme.

6. Hashing-algoritme :

Hashing-algoritmen werken hetzelfde als het zoekalgoritme, maar ze bevatten een index met een sleutel-ID, d.w.z. een sleutel-waardepaar. Bij hashen wijzen we een sleutel toe aan specifieke gegevens.
Enkele veelvoorkomende problemen kunnen worden opgelost via het hash-algoritme bij wachtwoordverificatie.