Algoritmus rozděl a panuj je strategie řešení problémů, která zahrnuje rozčlenění složitého problému na menší, lépe zvládnutelné části, řešení každé části jednotlivě a následnou kombinaci řešení k vyřešení původního problému. Je to široce používaná algoritmická technika v informatice a matematice.
Příklad: V Sloučit třídění algoritmus, Rozděl a panuj strategie se používá k třídění seznamu prvků. Níže uvedený obrázek ilustruje stavy dělení a slučování, pomocí kterých lze pole třídit Sloučit třídění .
Obsah
- Co je rozděl a panuj?
- Etapy rozděl a panuj
- Aplikace rozděl a panuj
- Základy rozděl a panuj
- Standardní algoritmy pro dělení a panování
- Problémy založené na binárním vyhledávání
- Procvičte si úlohy na Rozděl a panuj
Co je algoritmus rozděl a panuj?
Divide and Conquer je technika řešení problémů, která zahrnuje rozdělení většího problému na dílčí problémy, samostatné řešení dílčích problémů a kombinování řešení těchto dílčích problémů, aby se dosáhlo řešení většího problému.
Fáze algoritmu rozděl a panuj:
Algoritmus rozděl a panuj lze rozdělit do tří fází: Rozdělit , Dobýt a Spojit .
1. Rozdělit:
- Rozdělte původní problém na menší dílčí problémy.
- Každý dílčí problém by měl představovat část celkového problému.
- Cílem je rozdělit problém tak dlouho, dokud nebude možné další rozdělení.
2. Dobýt:
- Vyřešte každý z menších dílčích problémů samostatně.
- Pokud je podproblém dostatečně malý (často označovaný jako základní případ), řešíme jej přímo bez další rekurze.
- Cílem je najít řešení pro tyto dílčí problémy nezávisle.
3. Sloučit:
- Spojením dílčích problémů získáte konečné řešení celého problému.
- Jakmile jsou menší dílčí problémy vyřešeny, rekurzivně kombinujeme jejich řešení, abychom získali řešení většího problému.
- Cílem je formulovat řešení původního problému sloučením výsledků z dílčích problémů.
Aplikace algoritmu rozděl a panuj:
- Sloučit třídění: Merge sort je klasickým příkladem třídícího algoritmu rozděl a panuj. Rozdělí pole na menší podpole, seřadí je jednotlivě a poté je sloučí, aby se získalo setříděné pole.
- Medián nálezu: Medián množiny čísel lze nalézt pomocí přístupu rozděl a panuj. Rekurzivním rozdělením souboru na menší podmnožiny lze efektivně určit medián.
- Zjištění min a max: Algoritmus Divide and Conquer lze použít k současnému nalezení minimálních i maximálních prvků v poli. Rozdělením pole na poloviny a porovnáním min-max párů z každé poloviny lze celkové min a max identifikovat v logaritmické časové složitosti.
- Násobení matice: Strassenův algoritmus pro násobení matic je technika rozděl a panuj, která snižuje počet násobení potřebných pro velké matice tím, že matice rozděluje na menší podmatice a kombinuje jejich produkty.
- Problém s nejbližším párem: Problém nejbližšího páru zahrnuje nalezení dvou nejbližších bodů v množině bodů ve vícerozměrném prostoru. Algoritmus rozděl a panuj, jako je algoritmus nejbližšího páru rozděl a panuj, může tento problém efektivně vyřešit rekurzivním dělením bodů a slučováním řešení z dílčích problémů.
Základy algoritmu rozděl a panuj:
- Úvod do Rozděl a panuj
- Dynamické programování vs Rozděl a panuj
- Snížit a podmanit si
- Pokročilá hlavní věta pro opakování rozděl a panuj
Standardní algoritmy zapnuty Algoritmus rozděl a panuj :
- Binární vyhledávání
- Sloučit třídění
- Rychlé řazení
- Vypočítat pow(x, n)
- Algoritmus Karatsuba pro rychlé násobení
- Strassenovo násobení matice
- Konvexní trup (jednoduchý algoritmus rozděl a panuj)
- Algoritmus Quickhull pro konvexní trup
Problémy založené na binárním vyhledávání:
- Najděte vrcholový prvek v daném poli
- Zkontrolujte majoritní prvek v seřazeném poli
- K-tý prvek dvou tříděných polí
- Najděte počet nul
- Najděte počet otočení v poli Rotated Sorted
- Najděte bod, kdy se monotónně rostoucí funkce poprvé stane kladnou
- Medián dvou seřazených polí
- Medián dvou seřazených polí různých velikostí
- Problém s oddílem malíře pomocí binárního vyhledávání
Procvičte si problémy Algoritmus rozděl a panuj :
- Druhá odmocnina z celého čísla
- Maximum a minimum pole pomocí minimálního počtu porovnání
- Najděte frekvenci každého prvku v poli omezeného rozsahu za méně než O(n) čas
- Problém s obklady
- Počítat inverze
- Problém Skyline
- Hledejte v 2D poli uspořádaném po řádcích a sloupcích
- Přidělte minimální počet stránek
- Modulární umocňování (výkon v modulární aritmetice)
Rychlé odkazy :
- Naučte se datovou strukturu a algoritmy | Výukový program DSA
- „Procvičování problémů“ o rozdělování a panování
- „Kvízy“ na téma Rozděl a panuj