Verdeel en heers is een algoritmisch patroon. Bij algoritmische methoden is het de bedoeling om een dispuut over een enorme input te nemen, de input in kleine stukjes te verdelen, het probleem op elk van de kleine stukjes te beslissen en vervolgens de oplossingen in stukjes samen te voegen tot een globale oplossing. Dit mechanisme om het probleem op te lossen wordt de Verdeel en Heers Strategie genoemd.
Het verdeel en heers-algoritme bestaat uit een geschil met behulp van de volgende drie stappen.
Over het algemeen kunnen we de verdeel en heers aanpak in een proces van drie stappen.
Voorbeelden: De specifieke computeralgoritmen zijn gebaseerd op de Divide & Conquer-aanpak:
- Maximaal en minimaal probleem
- Binaire zoekopdracht
- Sorteren (samenvoegen, snel sorteren)
- Toren van Hanoi.
Fundamenteel van de verdeel-en-heersstrategie:
Er zijn twee fundamentele aspecten van de verdeel-en-heers-strategie:
- Relationele formule
- Conditie stoppen
1. Relationele formule: Het is de formule die we genereren op basis van de gegeven techniek. Na het genereren van de formule passen we de D&C-strategie toe, dat wil zeggen dat we het probleem recursief opsplitsen en de kapotte subproblemen oplossen.
2. Stopvoorwaarde: Wanneer we het probleem oplossen met behulp van de verdeel-en-heersstrategie, moeten we weten voor hoeveel tijd we de verdeel-en-heersstrategie moeten toepassen. Dus de voorwaarde waarbij de noodzaak om onze recursiestappen van D&C te stoppen, wordt stopvoorwaarde genoemd.
Toepassingen van de verdeel en heers-aanpak:
De volgende algoritmen zijn gebaseerd op het concept van de Verdeel en Heers-techniek:
Voordelen van verdeel en heers
- Verdeel en heers hebben de neiging om met succes een van de grootste problemen op te lossen, zoals de Toren van Hanoi, een wiskundige puzzel. Het is een uitdaging om ingewikkelde problemen op te lossen waarvoor je geen basisidee hebt, maar met behulp van de verdeel-en-heers-aanpak heeft het de inspanning verminderd omdat het werkt aan het verdelen van het hoofdprobleem in twee helften en deze vervolgens recursief oplost. Dit algoritme is veel sneller dan andere algoritmen.
- Het maakt efficiënt gebruik van cachegeheugen zonder veel ruimte in beslag te nemen, omdat het eenvoudige deelproblemen binnen het cachegeheugen oplost in plaats van toegang te krijgen tot het langzamere hoofdgeheugen.
- Het is bekwamer dan die van zijn tegenhanger Brute Force-techniek.
- Omdat deze algoritmen parallellisme tegengaan, zijn er geen wijzigingen nodig en wordt het afgehandeld door systemen die parallelle verwerking bevatten.
Nadelen van verdeel en heers
- Omdat de meeste algoritmen zijn ontworpen door recursie te integreren, is er een hoog geheugenbeheer nodig.
- Een expliciete stapel kan de ruimte te veel gebruiken.
- Het systeem kan zelfs crashen als de recursie rigoureus groter wordt uitgevoerd dan de stapel die in de CPU aanwezig is.