Java Selection Sort

Java Selection Sort
Det laveste elementet kommer først i utvalgssorteringen. Deretter byttes begynnelsesnoden, og vi gjentar for resten av listen. Utvelgelsessorteringen i Java krever ikke mer plass for sortering som innebærer gjentatte ganger å bestemme det minste elementet og bytte det med det som allerede er til stede i passende stilling. I tillegg kan vi bestemme kompleksiteten i utvalgssorteringen ved å telle antall løkker. Siden utvalget bruker to for-loop, er tidskompleksiteten O (N2).

Eksempel 1:

Utvelgelsen itererer over elementene i den spesifiserte usorterte matrisen. Minimumselementet er valgt og flyttet til den sorterte underavarrayen i hver iterasjon av utvalgssorteringen. Følgende program brukes til utvalgssorter for å sortere en matrise i stigende rekkefølge:

Klassen “AscendingSectionSort” er bygget i Java -programmet som er nevnt tidligere. Denne klassen implementeres med tomrommet "sort" -funksjon der heltallsarrayen "MyArray" sendes en parameter. Inne. Videre distribuerer vi For-loop-metoden som itererer grensen til den usorterte matrisen, en om gangen.

Neste trinn er å utvikle et objekt som heter “Min” som lokaliserer det usorterte arrayelementet med lavest verdi. Den andre for-loopen påberopes for å hente indeksposisjonen til minimumselementet fra matrisen. For-loop itererer fra “I+1” til det siste elementet i en matrise. Deretter har vi en if-uttalelse for å bekrefte om "myarray [j]" er mindre enn "myarray [min]" eller ikke. I så fall vil minimumsindeksen bli økt. Deretter bruker vi byttealgoritmen ved å bytte minimumsverdi for matrisen med den første verdien. Der har vi en annen funksjon, "printarray", som er etablert for å skrive ut den sorterte matrisen fra valgsorteringen. Vi skriver ut den sorterte matrisen ved å iterere hvert element i matrisen gjennom for-loop.

Til slutt tester vi implementeringen av valgsorteringen i Main () -metoden. Her definerer vi objektet "OBJ" for "Ascendings Selectionsort" -klassen og initialiserer også "MyArray" -arrayen med heltallelementene. Deretter bruker vi "Sorter" -funksjonen ved å bruke den matrisen som en parameter for å sortere matrisen, som deretter ble skrevet ut på konsollen.

Valgssorterteknikken brukes til å produsere følgende matrise som er sortert i stigende rekkefølge:

Eksempel 2:

Utvelgelsessorteringen kan også brukes til matrisen som ikke er forhåndsinnstilt. Brukeren kommer først inn i størrelsen på matrisen. Deretter kommer det inn i elementet inne i matrisen med den spesifiserte matrisen.

I det forrige programmet til Java definerte vi klassen "UserDefinedSelectionsort". Klassen er definert med "bytte" -funksjonen og tar "x []", "jeg" og "j" som parametere. Array -elementene sammenlignes først og deretter byttet med "temp" -variabelen. Etter det har vi en annen funksjon - “UserDefinedSelectionsort” - der “x []” -arrayen og objektstørrelsen er definert som en parameter. Denne funksjonen kalles med den nestede for-loopen. Vi krysset først den usorterte matrisen fra den første indeksen til den siste.

Deretter krysser vi den usorterte matrisen fra “I+1” til den siste verdien av matrisen for å få minimumselementet fra den usorterte matrisen og oppdatere minimumsindeksen. Etter det kaller vi "bytte" -funksjonen for å bytte x [i] med x [min_index]. Deretter har vi et hoved () metodeform der vi tar inngangen fra brukeren ved å opprette objektet "input" og kalle systemet i metoden. “S” -objektet betegner lengden på matrisen som bruker NextInt () -metoden for å lese neste token fra inngangsverdien av brukeren. Array -lengden er deklarert inne i matrisen “x []” og deretter oppnådd som verdien for matrisen innenfor matrisen størrelse. Den første matrisen vises først, deretter blir den sorterte matrisen fra STEVER SORT -metoden krysset og vises.

Ved sammenstilling av forrige kode ba terminalen først om å legge inn størrelsen på matrisen. Etter å ha definert størrelsen på matrisen, legger brukeren inn de tilfeldige elementene. Deretter utføres utvelgelsessorteringen. Den opprinnelige usorterte matrisen og valg av sortert matrise vises i følgende:

Eksempel 3:

Deretter gjøres utvalgssorteringen på den enkeltkoblede listen. Teknikken innebærer bytte av den koblede listeknuten i stedet for dataene i nodene.

I det forrige programmet har vi en Java -klasse “LinkedListSelectionsort” der vi definerer en annen klasse, “Node”. "Node" -klassen er erklært med "myData" -objektet og nodeobjektet, "next_node". Deretter har vi en "Swapnodes" -funksjon der den gjeldende noden "Curr_n1" blir byttet med en annen strømnode "Curr_n2" uten å bytte nodeelementene i den koblede listen. Først laget vi “Curr_n2” foran og justerte lenkene. Etter det bytter vi nodene med temp -variabelen.

Der har vi en annen "SelectionSort" -funksjon som bruker den rekursive valgsortilnærmingen for å sortere den koblede listen. Vi finner ut av if-tatement om den koblede listen har noden. Deretter definerer vi pekernoden "min_node" for minimum dataverdi og “prev_min” -nodepekeren for å ha den forrige datavekteringen til noden. For-loop krysser alle nodene på den koblede listen og trinn minimumsnoden og den forrige noden. Deretter bruker vi tilstanden - hvis min_node og hodeknuten er forskjellige, bytter vi min_node med hodeknuten. Den gjenværende koblede listen sorteres rekursivt ved å sette "hodet.NESTE_NODE ”I SelectionSort -funksjonen.

Videre oppretter vi "sortnodes" -funksjonen som verifiserer at den gitte koblede listen ikke skal være tom og sortere listen via valg () -funksjonen. Deretter har vi den neste funksjonen som er "Push" for å legge en node til startposisjonen til den koblede listen. Vi definerer "newnode" -objektet for å tildele noden og sette inn dataene i den noden. Etter det kobler vi hodetreferansen med den nye noden og omfordeler hodet til en ny node. Deretter oppretter vi en "displaylist" -funksjon for å skrive ut den koblede listen gjennom mens Loop.

Vi har en Main () -metode der den koblede listen initialiseres ved hjelp av push -metoden. De usorterte koblede listeelementene vil bli skrevet ut. Deretter påkaller vi sortnodes () -funksjonen som tar hodeobjektet som en parameter for å utføre utvalgssortoperasjonen. Den sorterte koblede listen skrives ut av DisplayList () -metoden som også tar "hodet" som et argument.

Den originale koblede listen vises. Etter det skrives den sorterte koblede listen ut i følgende:

Konklusjon

Utvelgelsessorteren spesifiserer i hovedsak hvor et element starter fra de andre elementene. Utvelgelsessorteringen i Java brukes når de små listene må sorteres. Det påvirker også skrivingshastigheten til minnet, spesielt flashminnet. Kjernekonseptet med å bruke utvalgssorteringen i Java er å dele en matrise i de sorterte og usorterte seksjonene og deretter sortere matrisen ved hjelp av sammenligninger. Eksempler på utvalgssortering er demonstrert med standard og den andre saken.