/ / Bubble sorteren van een eendimensionale array: algoritme, C-code

Belsortering van een eendimensionale array: algoritme, C-code

In het werken met de meest nuttige informatieopslagmethoden zijn structuren en arrays. Deze laatste kan elk van hetzelfde type gegevens bevatten dat handig is om in het programma te gebruiken. Ze worden vaak gebruikt bij de exploitatie van online winkels en bij de ontwikkeling van games. Daarom worden de gegevens die erin staan ​​herhaaldelijk gesorteerd en uitgewisseld en worden er logische of wiskundige bewerkingen op uitgevoerd. Een manier om een ​​array op te schonen is door belsortering. Deze publicatie zal de C-code en permutatielogica onderzoeken.

Array Sort Algorithm

Technische moeilijkheden voor de programmeurbelsortering van een eendimensionale array is niet representatief, hoewel het vanwege zijn lage efficiëntie zelden wordt gebruikt. Het wordt in de trainingsfase vaak beschouwd als de eenvoudigste. Het is echter verre van het meest effectief. Het algoritme bestaat uit het opeenvolgend vergelijken van cijfers en het herschrijven van cellen, als aan de voorwaarde is voldaan.

bubble sorteren

Stapsgewijze beschrijving van sorteren

Bij de eerste iteratie worden er twee geleidelijk vergelekenaangrenzende nummers. Als links groter is, wordt het op plaatsen met rechts overschreven. Min 8 en 0 voorwaarden voldoen niet. Daarom veranderen ze niet van plaats. Nul en 5 zijn ook niet geschikt. 5 en 3 zijn geschikt. Bij een dergelijke iteratie valt het leeskader echter niet op de top vijf, maar verschuift het naar rechts, aangezien 5 eerder werden vergeleken met nul. Dit betekent dat het volgende paar wordt omgekeerd - 3 en 9. Verder wordt de lezer uitgenodigd om alle vervangingen zelf te bekijken zonder commentaar van de auteur en het algoritme voor het sorteren van bellen te bestuderen.

algoritme voor het sorteren van bellen

Als gevolg van alle herhalingen wordt de array geleidelijkgesorteerd, en dit gebeurt voornamelijk als volgt: grote positieve getallen verschuiven snel naar rechts, terwijl kleinere en negatieve getallen langzaam naar links worden herschikt. Het lijkt erop dat gasbellen in een vloeistof snel omhoog drijven. Vanwege deze analogie werd het algoritme belsortering genoemd.

Beoordeling van computationele complexiteit

Het ideale sorteeralgoritme zou moeten zijnzo snel mogelijk. Tegelijkertijd zou het een kleine hoeveelheid processor- en geheugenbronnen in beslag moeten nemen. En zo'n proces als belsortering van een array kan niet het meest energiezuinig en winstgevend zijn. Daarom vond hij geen brede toepassing. Als er momenteel minder problemen met het geheugen zijn, moet u zich zorgen maken over processorbronnen. Aangezien digitale arrays niet alleen groot, maar ook enorm kunnen zijn, zal het verbruik van computerbronnen onvoorspelbaar zijn.

Als belsortering in principe snel isomgaan met het herstellen van de volgorde in een relatief kleine array, dan kunnen er in een grote array storingen optreden door overmatig gebruik van bronnen. Dit betekent dat de universaliteitseigenschap die inherent is aan het algoritme, wordt geschonden. Bovendien heeft sorteren op een bel N-kwadraatcomplexiteit en is het ver verwijderd van de logaritme van N-complexiteit. Daarnaast vergroot het risico op een storing bij het verwerken van een grote array de kans op dataverlies door het overschrijven van cellen. Sorteren op inserts of het Shell-algoritme zal in dit opzicht veel winstgevender zijn.

Programmacode

Hieronder aangegeven op de grafische applicatiecomputercode voor de C-taal maakt bellen sorteren mogelijk. Het wordt weergegeven als een afzonderlijke functie van het lege type. Het retourneert geen waarden, maar door aanwijzers te gebruiken, worden de elementen verwisseld afhankelijk van de sorteeromstandigheden. In dit geval lost de code het probleem op van belsortering van een array van gehele getallen in oplopende volgorde.

algoritme voor het sorteren van bellen

Om deze functie uit te voeren, moet de gebruikermaak een array die gevuld moet worden met de nodige waarden. Dit kan handmatig worden gedaan door de afmeting en het aantal elementen aan het begin van het programma in te stellen. Vervolgens kunt u de matrix vullen met constante waarden. De tweede optie is om een ​​universeel programma te maken door een grote eendimensionale reeks van 100 elementen te declareren.

Een array declareren en initialiseren

Door een integer variabele in te stellen en toe te wijzenwaarde gelezen vanaf het toetsenbord, kunt u het aantal te vullen cellen beperken. U kunt ook de functie van het invoeren van matrixelementen door de gebruiker vanaf het toetsenbord implementeren met behulp van de scanf-functie ("% d", & waarde). In dit voorbeeld is "% d" een modificatiereeks die de compiler vertelt dat na het scannen een geheel getal wordt verkregen. De variabele waarde slaat de waarde op, wat de grootte is van een eendimensionale integer-array.

Om het sorteeralgoritme te gebruiken, moet u dat doengeef de naam van de array en de grootte door aan de functie. In de situatie die wordt weergegeven in de grafische toepassing, ziet de aanroep van de sorteerfunctie er als volgt uit: BubleSort (dataArray, sizeDataArray). Natuurlijk moet je aan het einde van de regel na de functie een puntkomma plaatsen in plaats van een punt, zoals vereist door de regels van de syntaxis van het programma. DataArray is dus de naam van de array die moet worden gesorteerd en sizeDataArray is de grootte.

bubble array sorteren

Deze parameters doorgeven aan de functie Bubble Sort ()zal ertoe leiden dat in plaats van sizeArray, zoals weergegeven in de afbeelding, in een echt programma bewerkingen worden uitgevoerd met sizeDataArray. Dit betekent ook dat het integer dataArray zal worden gebruikt in de functie BubleSort (). Evenzo de aanroep van de functies printArrayFunction () en ArrayIntegerInputFunction (). De eerste is verantwoordelijk voor het afdrukken, dat wil zeggen voor het uitvoeren van elementen naar de console. En de tweede is nodig om het te vullen met elementen die door de gebruiker via het toetsenbord zijn ingevoerd.

Zo'n programmeerstijl wanneer geïsoleerdbewerkingen worden uitgevoerd in de vorm van functies, verhoogt de leesbaarheid van de code aanzienlijk en versnelt de ontwikkeling ervan. In een soortgelijk programma wordt de array apart van het toetsenbord ingevuld, wordt de output afgedrukt en wordt de bubbel zelf gesorteerd. Deze laatste kan worden gebruikt om gegevens te ordenen of als een secundaire functie die is ontworpen om het minimum en maximum van de array te vinden.

Invoegsortering

Bij invoegsortering wordt ervan uitgegaanafwisselend elk element vergelijken en een reeks elementen bouwen die al zijn gesorteerd op de staat van de elementen. Als resultaat is het resultaat van elke volgende vergelijking een zoekopdracht naar een cel waarin een nieuwe waarde kan worden geplaatst. Maar elk van hen wordt ingevoegd in het reeds gesorteerde deel van de array.

bubble sorteren op inserts

Een dergelijke verwerking is sneller en heeft minder rekenkundige complexiteit. C-code wordt weergegeven in een grafische applicatie.

bellen sorteren

Het wordt ook weergegeven als een functie waarinals argumenten worden de naam van de array die moet worden geordend en de grootte van de array doorgegeven. Hier kunt u zien hoe langzaam het sorteren van bellen is. Inlays, vergelijkbaar werk is veel sneller en heeft compacte code.

leuk vond:
0
Populaire berichten
Spirituele ontwikkeling
eten
Y