Innsettingssorter i C ++

Innsettingssorter i C ++
Innføringssorter er en grunnleggende organiseringsalgoritme eller tilnærming som fungerer på samme måte som du kan ordne kortstokker i håndflatene. Sortimentet er atskilt i to deler: det ene som er bestilt og den andre som ikke er. Elementer fra det uordnede segmentet er utpekt og lokalisert i det organiserte fragmentet i riktig rekkefølge. Innføringssorteringen vil sammenligne de to påfølgende verdiene med hverandre, og denne metodikken er mer effektiv enn boblen og utvalgssorteringen, men ikke så rask som rask sort eller flettingssort.

La oss starte med Shell -applikasjonslanseringen i Ubuntu 20.04 System med Ctrl+Alt+T. Etter å ha lansert den, oppretter du en C ++ -fil i hjemmemappen via "Touch" -instruksjonen som vises på bildet. Navngi C ++ -filen med "CC" -forlengelsen. Etter det, åpne filen din i en innebygd redaktør av Ubuntu 20.04 System (i.e. Gnu nano, tekst eller vim).

Eksempel 1:

La oss komme i gang med det aller første eksemplet for å bruke innsettingssorteringen for å sortere en tilfeldig uordnet matrise i stigende rekkefølge av tall. Vi startet koden vår med inkludering av “Bits/STDC++.H ”Standardbibliotek. Deretter la vi til standard "navneområde" av C ++ med det korte ordet "Bruke" og "STD". "Sorter ()" -funksjonen bruker matrisen “A” og størrelsen “N” for å sortere den uordnede tilfeldige matrisen til sortert en via innsettingsteknikken.

Vi erklærte en heltallvariabel "nøkkel" og "for" -sløyfen pågår. Inntil sløyfen samhandler opp til "n" størrelsen på en matrise, lagres verdien ved hver indeks "i" av matrise "a".

Initialiser en annen variabel “j” med den forrige verdien av indeksen “i” i.e. “J = I -1”. Her kommer mens Loop. Mens den forrige indeksen “j” er større enn eller lik 0 og verdien ved indeksen “j” er større enn verdien ved variabel “nøkkel” i.e. Verdien ved indeksen “I”, den vil fortsette å legge til verdien ved indeksen “J” til indeksen “J+1” som faktisk er 'I ”. Sammen med det vil indeksen “j” redusere med 1 i.e. Den forrige av “J” vil bli “J”.

Etter at Loop er slutt, tildeles verdien ved “J+1” med verdi “Key”. Jeg.e. på “Jeg”. For å gjøre det mer tydelig, la si om i = 1 så j = 0. Så hvis verdien til “J” er større enn “Key”, vil vi bytte verdien til “J” med neste påfølgende verdi.

Denne funksjonen utføres av Main () -funksjonen ved å passere matrisen og dens spesifikke størrelse i parametrene. "For" -sløyfen brukes til å iterere matriseverdiene fra indeks 0 til den siste indeksen "N-1" i en matrise. På hver iterasjon vises hver verdi på skallet ved å bruke den spesifikke indeksen for en matrise for en bestemt iterasjon via cout -setningen. Den siste cout -uttalelsen brukes til å sette linjens slutt etter visningen av hele matrisen “A” på skallet.

Utførelsen av denne koden starter fra Main () -metoden. Vi initialiserte en rekke “A” av heltallstype med noen tilfeldige tallverdier. Denne matrisen er ikke sortert ennå. Vi får størrelsen på en matrise ved å bruke variabelen “n” og bruke størrelsen på () -funksjonen på Array “A”.

Cout -objektet brukes til å gi brukeren beskjed om at programmet vil vise den originale usorterte matrisen på skjermen. "Show" -funksjonen kalles ved å passere matrisen “A” og størrelse “N” for å vise den tilfeldig bestilte matrisen. Den neste cout -uttalelsen brukes til å gi deg beskjed om at programmet kommer til å vise den sorterte matrisen på skallet ved bruk av innsettingssort.

"Sorter ()" kalles ved å passere en tilfeldig ordnet "A" og dens størrelse. Sorterings- () -funksjonen sorterer matrisen og showet () -funksjonen viser den oppdaterte sorterte arrayen “A” på skallskjermen på Linux -terminalen vår. Den samlede koden er nå fullført her.

Etter samlingen av koden vår har vi ingen feil. Vi utførte koden vår via "./en.ut ”instruksjon vist nedenfor. Den usorterte matrisen er vist, og deretter er den sorterte matrisen i en stigende rekkefølge via innsettingssorteringen.

Eksempel 2:

La oss se på et annet eksempel på innsettingssort. Innenfor dette eksemplet vil vi ikke bruke noen brukerdefinerte sorteringsfunksjoner for å utføre innsettingssorter. Vi vil bare bruke Main () -funksjonen i koden for å utføre den. Så vi åpner den samme kodefilen og oppdaterer koden. Legg til C ++ standardinngangs- og utgangsstrømbibliotek med nøkkelordet "#include". "Standard navneområdet" er deklarert ved hjelp av "bruk" nøkkelordet.

Vi starter hovedfunksjonen () -funksjonen () og initialiserer en heltallsarray “A” på størrelse 10 med de 10 numeriske verdiene. Disse elementene i en matrise “A” er tilfeldig plassert uavhengig av bestillingen. Cout -uttalelsen brukes til å oppgi at vi skal vise listen før de sorterer den. Etter dette bruker vi “For” -sløyfen for å iterere verdiene til den usorterte originale arrayen “A” opp til det siste elementet. På hver iterasjon av "for" -sløyfen vises hver samme indeksverdi fra matrisen "A" på skallet via "cout" -uttalelsen. Etter denne "for" -sløyfen bruker vi en annen "for" -sløyfe for å utføre "innsetting" -sortering.

Denne "for" -sløyfen initialiseres fra “K = 0” til “K = 10”. Mens sløyfen itererer seg fra 0 til 10. indeks for matrise “A”, fortsetter vi å tilordne verdien til indeksen “K” for Array “A” til den nye heltallvariabelen “Temp”. Vi finner også ut forgjengeren "j" for verdien "k" ved å bruke "k-1". "Mens" -løkken er her for å sjekke om forgjengerindeksen "J" er større enn 0 og verdien ved "temp" -variabelen er mindre enn eller lik verdien av forgjengeren "J" av Array "A".

Hvis denne tilstanden tilfredsstiller, tildeles forgjengerens verdi til den neste av "J" forgjengeren I.e. “J+1”. Sammen med dette fortsetter vi å redusere forgjengerindeksen i.e. beveger seg i bakover retning. Etter at Loop er slutt, tildeler vi verdien av "temp" til den neste av "J" forgjengeren. Etter at "for" -sløyfen er slutt, viser vi den sorterte matrisen "A". For dette bruker vi "cout" -uttalelsen i "for" -sløyfen. Koden er fullført her og er klar til bruk.

Vi kompilerte kodefilen “Insertion.CC ”med hell og utførte filen med“./en.ut ”instruksjon. Den usorterte tilfeldige matrisen vises først. Etter det vises den sorterte matrisen gjennom innsettingssorteringen på slutten i henhold til utgangen nedenfor.

Konklusjon

Denne artikkelen handler om bruk av innsettingssort for å sortere en tilfeldig matrise i et C ++ -program. Vi diskuterte den konvensjonelle måten å sortere matrisen med innsettingssorter i de første eksemplene i.e. bruk av slags, visning og hoved () driverfunksjon. Etter dette brukte vi den nye metoden for å utføre innsettingssorter i en enkelt driver main () -funksjon.