insertion sort java insertion sort algorithm examples
In deze tutorial wordt invoegsortering in Java uitgelegd, inclusief het algoritme, de pseudocode en voorbeelden van sorteermatrices, enkelvoudig gelinkte en dubbel gelinkte lijst:
De techniek van het algoritme voor invoegsortering is vergelijkbaar met bellen sorteren, maar is iets efficiënter. Invoegsortering is meer haalbaar en effectiever wanneer het een klein aantal elementen betreft. Als de gegevensset groter is, duurt het langer om de gegevens te sorteren.
Bekijk hier de Java-beginnershandleiding.
beste anime-sites om nagesynchroniseerde anime te bekijken
Wat je leert:
Inleiding tot invoegsortering in Java
Bij de invoegsorteertechniek gaan we ervan uit dat het eerste element in de lijst al gesorteerd is en beginnen we met het tweede element. Het tweede element wordt vergeleken met het eerste en verwisseld indien niet in orde. Dit proces wordt herhaald voor alle volgende elementen.
In het algemeen vergelijkt de invoegsorteertechniek elk element met al zijn voorgaande elementen en sorteert het element om het op de juiste positie te plaatsen.
Zoals eerder vermeld, is de invoegsorteringstechniek beter haalbaar voor een kleinere set gegevens, en dus kunnen arrays met een klein aantal elementen worden gesorteerd met behulp van efficiënt invoegsortering.
Invoegsortering is vooral handig bij het sorteren van gegevensstructuren van gekoppelde lijsten. Zoals u weet, hebben gekoppelde lijsten verwijzingen naar het volgende element (enkelvoudig gekoppelde lijst) en het vorige element (dubbele gekoppelde lijst). Dit maakt het gemakkelijker om de vorige en volgende elementen bij te houden.
Het is dus gemakkelijker om Invoegsortering te gebruiken voor het sorteren van gekoppelde lijsten. Het sorteren zal echter veel tijd kosten als er meer gegevensitems zijn.
In deze tutorial bespreken we de invoeging-sorteertechniek inclusief het algoritme, de pseudo-code en voorbeelden. We zullen ook Java-programma's implementeren om een array, een enkelvoudig gelinkte lijst en een dubbel gelinkte lijst te sorteren met behulp van invoegsortering.
Invoegsorteeralgoritme
Het invoegsorteeralgoritme is als volgt.
Stap 1 : Herhaal stap 2 t / m 5 voor K = 1 t / m N-1
Stap 2 : set temp = A [K]
Stap 3 : stel J = K - 1 in
Stap 4
Herhaal terwijl temp<=A[J]
set A [J + 1] = A [J]
stel J = J - 1
[einde van binnenste lus]
Stap 5
set A [J + 1] = temp
[einde van lus]
Stap 6 : Uitgang
Zoals u weet, begint de invoegsortering vanaf het tweede element, ervan uitgaande dat het eerste element al is gesorteerd. De bovenstaande stappen worden voor alle elementen in de lijst vanaf het tweede element herhaald en op hun gewenste posities gezet.
Pseudocode voor invoegsortering
De pseudo-code voor de invoegsorteertechniek wordt hieronder gegeven.
Laten we vervolgens een illustratie bekijken die het sorteren van een array laat zien met behulp van invoegsortering.
Een array sorteren met behulp van invoegsortering
Laten we een voorbeeld nemen van invoegsortering met behulp van een array.
De te sorteren array is als volgt:
Nu vergelijken we voor elke doorgang het huidige element met al zijn voorgaande elementen. Dus in de eerste doorgang beginnen we met het tweede element.
We hebben dus N aantal passages nodig om een array met N aantal elementen volledig te sorteren.
test uw website in verschillende browsers
De bovenstaande illustratie kan in tabelvorm worden samengevat, zoals hieronder weergegeven:
Slagen voor | Ongesorteerde lijst | vergelijking | Gesorteerde lijst |
---|---|---|---|
1 | {10,2,6,15,4,1} | {10.2} | {2,10, 6,15,4,1} |
twee | {2,10, 6,15,4,1} | {2,10, 6} | {2,6,10,15,4,1} |
3 | {2,6,10,15,4,1} | {2.6, 10.15} | {2,6,10,15,4,1} |
4 | {2,6,10,15,4,1} | {2.6, 10.15.4} | {2,4,6,10,15,1} |
5 | {2,4,6,10,15,1} | {2,4,6,10,15,1} | {1,2,4,6, 10,15} |
6 | | | {1,2,4,6, 10,15} |
Zoals te zien is in de bovenstaande afbeelding, gaat aan het einde van elke doorgang één element op de juiste plaats. Om N-elementen op de juiste plaats te plaatsen, hebben we in het algemeen N-1-passen nodig.
Implementatie van invoegsortering in Java
Het volgende programma toont de implementatie van de invoegsortering in Java. Hier hebben we een array die moet worden gesorteerd met behulp van de invoegsortering.
Uitgang:
Oorspronkelijke matrix: [10, 6, 15, 4, 1, 45]
Gesorteerde matrix: [1, 4, 6, 10, 15, 45]
In de bovenstaande implementatie is te zien dat het sorteren begint vanaf de 2ndelement van de array (lusvariabele j = 1) en vervolgens wordt het huidige element vergeleken met al zijn voorgaande elementen. Het element wordt dan op de juiste positie geplaatst.
Invoegsortering werkt effectief voor kleinere arrays en voor arrays die gedeeltelijk zijn gesorteerd, waarbij het sorteren in minder passages wordt voltooid.
Invoegsortering is een stabiele sortering, d.w.z. het handhaaft de volgorde van gelijke elementen in de lijst.
Een gekoppelde lijst sorteren met behulp van invoegsortering
Het volgende Java-programma toont het sorteren van een enkelvoudig gelinkte lijst met behulp van de invoegsortering.
Uitgang:
Oorspronkelijke gekoppelde lijst:
1 8 32 2 10
Gesorteerde gekoppelde lijst:
1 2 8 10 32
In het bovenstaande programma hebben we een klasse gedefinieerd die een gekoppelde lijst maakt en er knooppunten aan toevoegt en deze sorteert. Aangezien de enkelvoudig gekoppelde lijst een volgende aanwijzer heeft, is het gemakkelijker om de knooppunten bij te houden bij het sorteren van de lijst.
Een dubbel gekoppelde lijst sorteren met behulp van invoegsortering
Het volgende programma sorteert een dubbelgekoppelde lijst met behulp van invoegsortering. Merk op dat aangezien de dubbel gelinkte lijst zowel vorige als volgende verwijzingen bevat, het gemakkelijk is om de verwijzingen bij te werken en opnieuw te koppelen tijdens het sorteren van de gegevens.
Uitgang:
Originele dubbel gelinkte lijst:
1 11 2 7 3 5
Gesorteerde dubbel gekoppelde lijst:
1 2 3 5 7 11
Veel Gestelde Vragen
V # 1) Wat is invoegsortering in Java?
Antwoord: Invoegsortering is een eenvoudige sorteertechniek in Java die efficiënt is voor een kleinere gegevensset en op zijn plaats is. Aangenomen wordt dat het eerste element altijd wordt gesorteerd en dat elk volgend element wordt vergeleken met al zijn voorgaande elementen en op de juiste positie wordt geplaatst.
Vraag 2 Waarom is invoegsortering beter?
Antwoord: Invoegsortering is sneller voor kleinere gegevenssets wanneer de andere technieken, zoals snel sorteren, overhead toevoegen via recursieve aanroepen. Invoegsortering is relatief stabieler dan de andere sorteeralgoritmen en vereist minder geheugen. Invoegsortering werkt ook efficiënter wanneer de array bijna is gesorteerd.
Vraag 3 Waar wordt de invoegsortering voor gebruikt?
Antwoord: Invoegsortering wordt meestal gebruikt in computertoepassingen die complexe programma's bouwen, zoals het zoeken naar bestanden, het zoeken naar paden en datacompressie.
Vraag 4Wat is de efficiëntie van Insertion Sort?
Antwoord: Invoegsortering heeft een gemiddelde hoofdletterprestatie van O (n ^ 2). Het beste geval voor invoegsortering is wanneer de array al is gesorteerd en deze O (n) is. Slechtste prestatie voor invoegsortering is opnieuw O (n ^ 2).
Gevolgtrekking
Invoegsortering is een eenvoudige sorteertechniek die werkt op arrays of gekoppelde lijsten. Het is handig als de dataset kleiner is. Naarmate de dataset groter wordt, wordt deze techniek langzamer en inefficiënt.
beste youtube naar mp3 converter downloaden
De invoegsortering is ook stabieler en op zijn plaats dan de andere sorteertechnieken. Er is geen geheugenoverhead omdat er geen aparte structuur wordt gebruikt voor het opslaan van gesorteerde elementen.
Invoegsortering werkt goed bij het sorteren van gekoppelde lijsten die zowel enkelvoudig als dubbelgekoppelde lijsten zijn. Dit komt doordat de gekoppelde lijst bestaat uit knooppunten die zijn verbonden door middel van pointers. Daarom wordt het sorteren van knooppunten eenvoudiger.
In onze aanstaande tutorial zullen we nog een andere sorteertechniek in Java bespreken.
Lees de Easy Java Training Series door.
Aanbevolen literatuur
- Selectie sorteren in Java - Selectie sorteeralgoritme en voorbeelden
- Invoegsortering in C ++ met voorbeelden
- Hoe een array in Java te sorteren - Tutorial met voorbeelden
- MongoDB Sort () -methode met voorbeelden
- Unix-sorteeropdracht met syntaxis, opties en voorbeelden
- Shell-sortering in C ++ met voorbeelden
- Java-interface en abstracte les met voorbeelden
- Selectie sorteren in C ++ met voorbeelden