Divide and Conquer-algoritmen er en problemløsningsstrategi som innebærer å bryte ned et komplekst problem i mindre, mer håndterbare deler, løse hver del individuelt, og deretter kombinere løsningene for å løse det opprinnelige problemet. Det er en mye brukt algoritmisk teknikk innen informatikk og matematikk.
Eksempel: I Slå sammen sortering algoritme, den Splitt og hersk strategi brukes til å sortere en liste over elementer. Bildet nedenfor illustrerer delings- og sammenslåingstilstandene for å sortere matrisen ved hjelp av Slå sammen sortering .
Innholdsfortegnelse
- Hva er Divide and Conquer?
- Stadier av splitt og hersk
- Anvendelser av Divide and Conquer
- Grunnleggende om Divide and Conquer
- Standardalgoritmer for Divide and Conquer
- Binære søk baserte problemer
- Øv problemer på Divide and Conquer
Hva er Divide and Conquer-algoritmen?
Divide and Conquer er en problemløsningsteknikk som innebærer å dele opp et større problem i delproblemer, løse delproblemene uavhengig og kombinere løsningene til disse delproblemene for å få løsningen på det større problemet.
Stadier av Divide and Conquer-algoritmen:
Divide and Conquer-algoritmen kan deles inn i tre stadier: Dele opp , Erobre og Slå sammen .
1. Del opp:
- Bryt ned det opprinnelige problemet i mindre delproblemer.
- Hvert delproblem skal representere en del av det overordnede problemet.
- Målet er å dele opp problemet til ingen ytterligere deling er mulig.
2. Erobre:
- Løs hvert av de mindre delproblemene individuelt.
- Hvis et delproblem er lite nok (ofte referert til som basistilfellet), løser vi det direkte uten ytterligere rekursjon.
- Målet er å finne løsninger på disse delproblemene selvstendig.
3. Slå sammen:
- Kombiner delproblemene for å få den endelige løsningen på hele problemet.
- Når de mindre delproblemene er løst, kombinerer vi rekursivt løsningene deres for å få løsningen på større problem.
- Målet er å formulere en løsning for det opprinnelige problemet ved å slå sammen resultatene fra deloppgavene.
Anvendelser av Divide and Conquer-algoritmen:
- Slå sammen sortering: Slå sammen sortering er et klassisk eksempel på en divisjonssortering-algoritme. Den bryter ned matrisen i mindre undermatriser, sorterer dem individuelt og slår dem deretter sammen for å oppnå den sorterte matrisen.
- Medianfunn: Medianen til et sett med tall kan bli funnet ved å bruke en del og hersk-tilnærming. Ved rekursivt å dele settet i mindre delmengder, kan medianen bestemmes effektivt.
- Min og maks funn: Divide and Conquer-algoritmen kan brukes til å finne både minimums- og maksimumselementene i en matrise samtidig. Ved å dele opp matrisen i halvdeler og sammenligne min-maks-parene fra hver halvdel, kan den totale min og maks identifiseres i logaritmisk tidskompleksitet.
- Matrisemultiplikasjon: Strassens algoritme for matrisemultiplikasjon er en del og hersk-teknikk som reduserer antallet multiplikasjoner som kreves for store matriser ved å bryte ned matrisene til mindre submatriser og kombinere produktene deres.
- Problem med nærmeste par: Det nærmeste parproblemet innebærer å finne de to nærmeste punktene i et sett med punkter i et flerdimensjonalt rom. En dele-og-hersk-algoritme, slik som algoritmen for å dele og hersk nærmeste par, kan effektivt løse dette problemet ved å rekursivt dele punktene og slå sammen løsningene fra delproblemene.
Grunnleggende om Divide and Conquer-algoritmen:
- Introduksjon til Divide and Conquer
- Dynamisk programmering vs Divide-and-Conquer
- Reduser og erobre
- Avansert masterteorem for gjentakelse av splitt og hersk
Standard algoritmer på Divide and Conquer-algoritmen :
- Binært søk
- Slå sammen sortering
- Rask sortering
- Beregn pow(x, n)
- Karatsuba-algoritme for rask multiplikasjon
- Strassens matrisemultiplikasjon
- Convex Hull (Enkel Divide and Conquer-algoritme)
- Quickhull-algoritme for konveks skrog
Binære søk baserte problemer:
- Finn et toppelement i en gitt matrise
- Se etter Majority Element i en sortert matrise
- K-te element av to sorterte matriser
- Finn antall nuller
- Finn rotasjonstellingen i rotert sortert matrise
- Finn punktet hvor en monotont økende funksjon blir positiv første gang
- Median av to sorterte matriser
- Median av to sorterte matriser av forskjellige størrelser
- Malerens partisjonsproblem ved hjelp av binært søk
Øv problemer på Divide and Conquer-algoritmen :
- Kvadratroten av et heltall
- Maksimum og minimum av en matrise ved å bruke minimum antall sammenligninger
- Finn frekvensen til hvert element i et begrenset område på mindre enn O(n) tid
- Problem med flislegging
- Tell inversjoner
- Skyline-problemet
- Søk i en rad- og kolonnevis sortert 2D-matrise
- Tildel minimum antall sider
- Modulær eksponentiering (kraft i modulær aritmetikk)
Hurtigkoblinger :
- Lær datastruktur og algoritmer | DSA veiledning
- 'Øv problemer' om Divide and Conquer
- «Quizzer» om Divide and Conquer