logo

Den viktigste typen algoritmer

Hva er en algoritme?

En algoritme er en trinnvis prosedyre for å løse et problem. En god algoritme bør optimaliseres med tanke på tid og rom. Ulike typer problemer krever forskjellige typer algoritmiske teknikker for å løses på den mest optimaliserte måten. Det finnes mange typer algoritmer, men de viktigste og grunnleggende algoritmene du må diskutere i denne artikkelen.

1. Brute Force Algorithm :

Dette er den mest grunnleggende og enkleste typen algoritme. En Brute Force Algorithm er den enkle tilnærmingen til et problem, dvs. den første tilnærmingen vi tenker på når vi ser problemet. Mer teknisk er det akkurat som å gjenta alle tilgjengelige muligheter for å løse det problemet.

Eksempel:



Hvis det er en lås med 4-sifret PIN-kode. Sifrene som skal velges fra 0-9, så vil råstyrken prøve alle mulige kombinasjoner én etter én som 0001, 0002, 0003, 0004, og så videre til vi får riktig PIN-kode. I verste fall vil det ta 10 000 forsøk for å finne den rette kombinasjonen.

2. Rekursiv algoritme :

Denne typen algoritme er basert på rekursjon . Ved rekursjon løses et problem ved å dele det opp i delproblemer av samme type og kalle eget jeg igjen og igjen til problemet er løst ved hjelp av en grunnbetingelse.
Noen vanlige problemer som løses ved hjelp av rekursive algoritmer er Faktoriell av et tall , Fibonacci-serien , Tårnet i Hanoi , DFS for Graph , etc.

spørringsvelger

en) Divide and Conquer-algoritmen :

I Divide and Conquer-algoritmer er tanken å løse oppgaven i to seksjoner, den første seksjonen deler oppgaven inn i deloppgaver av samme type. Den andre delen er å løse det mindre problemet uavhengig og deretter legge til det kombinerte resultatet for å produsere det endelige svaret på problemet.
Noen vanlige problemer som løses ved hjelp av Divide and Conquers-algoritmer er Binært søk , Slå sammen sortering , Rask sortering, Strassens matrisemultiplikasjon , etc.

b) Dynamiske programmeringsalgoritmer :

Denne typen algoritme er også kjent som memoiseringsteknikk fordi ideen i dette er å lagre det tidligere beregnede resultatet for å unngå å beregne det igjen og igjen. I dynamisk programmering deler du det komplekse problemet i mindre overlappende delproblemer og lagre resultatet for fremtidig bruk.
Følgende problemer kan løses ved hjelp av algoritmen for dynamisk programmering Rullesekk problem , Vektet jobbplanlegging , Floyd Warshall-algoritme , etc.

hovedmetode java

c) Grådig algoritme :

I Greedy Algorithm bygges løsningen del for del. Beslutningen om å velge neste del gjøres på bakgrunn av at det gir en umiddelbar fordel. Den tar aldri hensyn til valgene som ble tatt tidligere.
Noen vanlige problemer som kan løses gjennom Greedy Algorithm er Dijkstra Shortest Path Algoritme , Prims algoritme , Kruskals algoritme , Huffman-koding , etc.

d) Tilbakesporingsalgoritme :

I Backtracking Algorithm løses problemet på en inkrementell måte, det vil si at det er en algoritmisk teknikk for å løse problemer rekursivt ved å prøve å bygge en løsning trinnvis, ett stykke om gangen, og fjerne de løsningene som ikke tilfredsstiller problemets begrensning på noen måte. tidspunkt.
Noen vanlige problemer som kan løses gjennom Backtracking Algorithm er Hamiltonsk syklus , M-fargeproblem , N Queen Problem , Problem med rotte i labyrint , etc.

3. Randomisert algoritme :

I den randomiserte algoritmen bruker vi et tilfeldig tall. Det hjelper å bestemme det forventede resultatet. Beslutningen om å velge det tilfeldige tallet så det gir umiddelbar fordel
Noen vanlige problemer som kan løses gjennom Randomized Algorithm er Quicksort: I Quicksort bruker vi det tilfeldige tallet for å velge pivot.

4. Sorteringsalgoritme :

Sorteringsalgoritmen brukes til å sortere data i kanskje stigende eller synkende rekkefølge. Den brukes også til å ordne data på en effektiv og nyttig måte.
Noen vanlige problemer som kan løses gjennom sorteringsalgoritmen er boblesortering, innsettingssortering, flettesortering, utvalgssortering og hurtigsortering er eksempler på sorteringsalgoritmen.

5. Søkealgoritme :

Søkealgoritmen er algoritmen som brukes til å søke etter den spesifikke nøkkelen i bestemte sorterte eller usorterte data. Noen vanlige problemer som kan løses gjennom søkealgoritmen er binært søk eller lineært søk er ett eksempel på en søkealgoritme.

6. Hashing-algoritme :

Hashing-algoritmer fungerer på samme måte som søkealgoritmen, men de inneholder en indeks med en nøkkel-ID, dvs. et nøkkel-verdi-par. I hashing tildeler vi en nøkkel til spesifikke data.
Noen vanlige problemer kan løses gjennom hashing-algoritmen i passordverifisering.