/ / Samenvoegen sorteren: een beschrijving van de werking van het algoritme en verschillen met andere soorten gegevensvolgorde

Sortering samenvoegen: beschrijving van de werking van het algoritme en verschillen met andere soorten gegevensbestelling

Bij het ontwikkelen van verschillende programma's, praktischprogrammeurs moeten altijd hun toevlucht nemen tot het gebruik van sortering om werkalgoritmen te optimaliseren, de prestaties van een zoekbewerking te verbeteren, enz. Tegenwoordig zijn er veel verschillende methoden om elementen in de vereiste volgorde te rangschikken: sorteren samenvoegen, een sleutel gebruiken, enz. een complex van bewerkingen, waarvan het resultaat leidt tot het ordenen van objecten van hetzelfde type in aflopende of oplopende volgorde - afhankelijk van de vereisten van een bepaalde taak.

De hele reeks sorteeralgoritmen kan zijnonderverdeeld in twee categorieën: arrays bestellen en bestanden bestellen. Het eerste type objecten kan niet alleen in RAM worden gelokaliseerd, maar ook op een bepaald medium, op voorwaarde dat de toegang er rechtstreeks toe is. De tweede categorie objecten moet zich op een tastbare drager bevinden: schijf of magneetband.

Belangrijkste verschil tussen het bestellen van artikelenarray en de locatie in de aangegeven volgorde van de bestanden is dat alle arrayleden op elk moment beschikbaar zijn bij het openen ervan, en daarom begint het sorteerproces onmiddellijk vanaf het moment dat de procedure start zonder onderbrekingen vanwege de onbeschikbaarheid van een of ander element . Bij het bestellen van bestanden op een bepaald moment kan echter alleen toegang worden verleend aan een beperkt aantal leden.

Frequent genoeg om bestanden te organiserenmerge sort wordt toegepast, dat is ontwikkeld op basis van de fundamentele principes van het rangschikken van elementen in een specifieke volgorde. In het algemeen kan de sorteerprocedure als volgt worden beschreven: een bepaald gegevenssegment wordt geselecteerd en als sleutel gebruikt. Beschouw als voorbeeld het voorbeeld van het sorteren van mailings op een gespecificeerde index. Hierdoor voert het algoritme geen volledige analyse van de informatie uit, maar sorteert het tegelijkertijd de nodige elementen met een hoge mate van waarschijnlijkheid.

Het belangrijkste verschil tussen opeenvolgende bestanden enbestanden met de verstrekking van directe toegang is dat ze kunnen worden gelokaliseerd op media die moeilijk te organiseren zijn, constante directe toegang. Bovendien gebruiken dergelijke bestanden meestal geen vaste lengte voor de opgeslagen records. Vanwege deze kenmerken worden opeenvolgende bestanden alleen in twee situaties gebruikt:

- indien nodig, het gebruik van een opslagmedium gericht op sequentiële toegang;

- wanneer het handig is om een ​​variabele lengte van records te gebruiken.

Samenvoegsortering wordt vrij vaak gebruiktin moderne softwaretools. Dit komt door de brede verspreiding van opeenvolgende bestanden. Bijna alle tekstbestanden zijn bijvoorbeeld opeenvolgend. Ondanks het gemak van het beschouwen van een opeenvolgend georganiseerd bestand als een reeks gegevens, is een dergelijke benadering onmogelijk, omdat het onmogelijk is om fysiek toegang te krijgen tot alle elementen van de bestandshardware.

Samenvoegsortering is in feite de enige gewordenmanier om opeenvolgende bestanden te sorteren. Hoewel er tegenwoordig andere methoden zijn om opeenvolgende bestanden te organiseren, blijft deze methode een van de meest populaire. Natuurlijk samenvoegen betekent het splitsen van een bestand in twee delen die qua informatievolume gelijk zijn. Verder is er uit elk bestand een geleidelijke lezing van elk element dat momenteel beschikbaar is. De bestelde elementen worden in de vereiste volgorde gerangschikt in het derde bestand, dat verder is onderverdeeld in twee van vergelijkbare grootte. Dit is hoe samenvoegsortering wordt uitgevoerd. Pascal, C, Basic - de meeste bekende programmeertalen ondersteunen de implementatie van dit soort opeenvolgende bestandsvolgorde.