9 Nu moeten we vergelijken of het vierde punt op onze lijst - het laatste element - superieur is aan al het andere op onze lijst. In dit geval is 9 groter dan alle elementen ervoor: 8, 6 en 3. Dit is het algoritme dat we hebben gebruikt om de lijst te sorteren: - eerste element is gesorteerd.
- Vergelijk het tweede element met het element links ervan.
- Als dit element groter is dan de waarde links ervan, blijft het element op dezelfde plaats. Verplaats anders de waarde naar links.
- Herhaal totdat alle items in volgorde verschijnen.
We hebben nu een gesorteerde array. De invoegsoorten worden op één item tegelijk gesorteerd. Laten we eens kijken hoe we dit sorteeralgoritme in Java kunnen implementeren Hoe een sorteer in Java invoegende hoogste van twee waarden die worden vergeleken, wordt één positie naar rechts ingevoegd telkens wanneer de sorteerfunctie wordt uitgevoerd. Het is oké om in theoretische termen te spreken , maar hoe wordt het geïmplementeerd in Java? Dat is een goede vraag. Laten we een klas schrijven die sorteert op invoeging op een lijst met cijfers van leerlingen. De array-bibliotheek voorbereiden Laten we beginnen door de array-bibliotheek in ons Java-programma te importeren. We zullen deze bibliotheek gebruiken om onze lijst naar de console af te drukken zodra we deze hebben gesorteerd: decla re een sorteermethode We beginnen met het declareren van een methode die onze lijst herhaalt en onze gegevens sorteert in oplopende volgorde >: Laten we beginnen met uit te zoeken hoeveel elementen in onze invoerarray. Hierdoor kunnen we een lus maken die door elk item in onze lijst gaat. We initialiseren een lus die doorloopt totdat we uit onze lijst komen. In onze lus hebben we twee variabelen gedeclareerd: de sleutel en de laatste. De Java variabele "sleutel" houdt bij welk element we momenteel bestellen. De variabele "laatste" houdt bij hoeveel items links van het item moeten worden gesorteerd. Ons programma vergelijkt de waarde van "key" met elk element aan de linkerkant totdat we een kleiner element vinden . Dit gebeurt in onze Java "while" -lus. Definieer een hoofdfunctie Als we dit uitvoeren code, er gebeurt niets. We hebben inderdaad onze hoofdfunctie nog niet gedefinieerd. We definiëren een hoofdfunctie die een netwerk van int (een reeks getallen) definieert. Deze hoofdfunctie gebruikt de functie insertSort () die we hebben gedeclareerd om deze cijfers te sorteren. Plak deze code na het declareren van uw entrySort Java-methode : In onze hoofdmethode hebben we een lijst gedeclareerd met de getallen die we willen sorteren. We hebben onze methode InsertionSort () geïnstantieerd met de naam sortNumbers . We gebruiken deze methode om de lijst met nummers in oplopende volgorde te sorteren. Deze methode verandert de waarden ‚Äã‚Äãin onze "cijfers"-vector; we hebben geen aparte array gedeclareerd om de waarden op te slaan. Vervolgens gebruikten we de methode Arrays.toString () om onze reeks getallen om te zetten in een tekenreeks. < h2> examencomplexiteitinvoegsortering heeft een gemiddelde hoofdlettercomplexiteit van O ( n ^ 2). Dit gebeurt wanneer er geen items zijn gesorteerd. In het beste geval treedt complexiteit op als een array wordt gesorteerd. Dit levert een tijdcomplexiteit op van O (n). inderdaad, de binnenste lus in een soort van invoeging wordt in dit geval helemaal niet uitgevoerd. in het ergste geval wordt ingevoegd op O ‚Äã‚Äãsort (n ^ 2). Dit gebeurt als een array in oplopende of aflopende volgorde staat en u wilt in omgekeerde volgorde sorteren (dwz van oplopend naar aflopend) de confrontatie van elk element met alle andere elementen ents. ConclusieInvoegtypen zijn een efficiënte manier om gegevens te sorteren. orts vergelijkt de waarden vanaf de tweede in een lijst. Als deze waarde groter is dan de waarde aan de linkerkant, verandert onze lijst niet. Anders wordt de waarde verplaatst totdat het element aan de linkerkant kleiner is. U bent nu klaar om uw eigen sorteeralgoritme voor invoegingen in Java te schrijven! Als u op zoek bent naar meer Java-leermiddelen, bekijk dan onze Java-leergids . |