bubble sort java java sorting algorithms code examples
Denne opplæringen vil forklare boblesorteringen i Java sammen med store Java-sorteringsalgoritmer, boblesorteringsimplementering og kodeeksempler:
En sorteringsalgoritme kan defineres som en algoritme eller en prosedyre for å sette elementer i en samling i en bestemt rekkefølge. For eksempel, hvis du har en numerisk samling som en ArrayList med heltall, vil du kanskje ordne elementene i ArrayList i stigende eller synkende rekkefølge.
På samme måte vil du kanskje ordne strenger i en strengesamling i alfabetisk eller leksikografisk rekkefølge. Det er her sorteringsalgoritmene i Java kommer inn i bildet.
hvordan du leser en .bin-fil
Hva du vil lære:
Store sorteringsalgoritmer i Java
Sorteringsalgoritmer blir vanligvis evaluert avhengig av tid og romkompleksitet. Java støtter forskjellige sorteringsalgoritmer som brukes til å sortere eller ordne samlingene eller datastrukturene.
Tabellen nedenfor viser de viktigste sorteringsalgoritmene som støttes i Java sammen med deres best / worst-case kompleksitet.
Tidskompleksitet | ||||
---|---|---|---|---|
Radix Sort | Lineær sorteringsalgoritme. | O (nk) | O (nk) | O (nk) |
Sorteringsalgoritme | Beskrivelse | Beste tilfelle | Verste fall | Gjennomsnittlig sak |
Boblesortering | Sammenligner gjeldende element gjentatte ganger med tilstøtende elementer. På slutten av hver iterasjon blir det tyngste elementet boblet opp på riktig sted. | På) | O (n ^ 2) | O (n ^ 2) |
Sortering av innsetting | Setter inn hvert element i samlingen på riktig sted. | På) | O (n ^ 2) | O (n ^ 2) |
Slå sammen Sorter | Det følger skillet og erobre tilnærmingen. Deler samlingen i enklere undersamlinger, sorterer dem og slår deretter sammen alt | O (nlogn) | O (nlogn) | O (nlogn) |
Rask sortering | Mest effektiv og optimalisert sorteringsteknikk. Bruker deling og erobring for å sortere samlingen. | O (nlogn) | O (n ^ 2) | O (nlogn) |
Valg Sorter | Finner det minste elementet i samlingen og setter det på riktig sted på slutten av hver iterasjon | O (N ^ 2) | O (N ^ 2) | O (N ^ 2) |
Haugsortering | Elementene sorteres etter å bygge min heap eller max heap. | O (nlogn) | O (nlogn) | O (nlogn) |
Bortsett fra sorteringsteknikkene gitt i tabellen ovenfor, støtter Java også følgende sorteringsteknikker:
- Bøkesortering
- Counting Sort
- Shell Sort
- Kombesortering
Men disse teknikkene brukes sparsomt i praktiske anvendelser, og dermed vil ikke disse teknikkene være en del av denne serien.
La oss diskutere Bubble Sort Technique i Java.
Boblesortering i Java
Boblesortering er den enkleste av alle sorteringsteknikker i Java. Denne teknikken sorterer samlingen ved å sammenligne to tilstøtende elementer gjentatte ganger og bytte dem hvis de ikke er i ønsket rekkefølge. Således, på slutten av iterasjonen, blir det tyngste elementet boblet opp for å hevde sin rettmessige stilling.
Hvis det er n elementer i liste A gitt av A (0), A (1), A (2), A (3),… .A (n-1), så sammenlignes A (0) med A (1 ), A (1) sammenlignes med A (2) og så videre. Etter å ha sammenlignet om det første elementet er større enn det andre, byttes de to elementene hvis de ikke er i orden.
Bubble Sort Algorithm
Den generelle algoritmen for Bubble Sort Technique er gitt nedenfor:
Trinn 1: For i = 0 til N-1, gjenta trinn 2
Steg 2: For J = i + 1 til N - gjentar jeg
Trinn 3: hvis A (J)> A (i)
Bytt A (J) og A (i)
(End of Inner for loop)
(Slutt hvis ytre for løkke)
Trinn 4: Exit
La oss nå demonstrere Bubblesorteringsteknikken ved hjelp av et illustrerende eksempel.
Vi tar en rekke størrelser 5 og illustrerer algoritmen for sortering av bobler.
Sorter en serie ved hjelp av boble
Følgende liste skal sorteres.
er c ++ bedre enn java
Som du kan se ovenfor, er matrisen helt sortert.
Illustrasjonen ovenfor kan oppsummeres i tabellform som vist nedenfor:
Sende | Usortert liste | sammenligning | Sortert liste |
---|---|---|---|
{3,6,11,4,15} | {11.4} | {3,6,4,11,15} | |
1 | {11, 3, 6,15,4} | {11.3} | {3,11,6,15,4} |
{3,11,6,15,4} | {11.6} | {3,6,11,15,4} | |
{3,6,11,15,4} | {11.15} | {3,6,11,15,4} | |
{3,6,11,15,4} | {15.4} | {3,6,11,4,15} | |
to | {3,6,11,4,15} | {3,6} | {3,6,11,4,15} |
{3,6,11,4,15} | {6.11} | {3,6,11,4,15} | |
3 | {3,6,4,11,15} | {3,6} | {3,6,4,11,15} |
{3,6,4,11,15} | {6.4} | {3,4,6,11,15} | |
{3,4,6,11,15} | SORTERT |
Som vist i eksemplet ovenfor, bobler det største elementet opp til riktig posisjon med hver iterasjon / passering. Generelt passerer når vi når N-1 (der N er et totalt antall elementer i listen); vi vil ha hele listen sortert.
Eksempel på boblesorteringskode
Programmet nedenfor viser Java-implementeringen av boblesorteringsalgoritmen. Her opprettholder vi en rekke tall og bruker to til løkker for å krysse gjennom tilstøtende elementer i matrisen. Hvis to tilstøtende elementer ikke er i orden, byttes de ut.
import java.util.*; class Main{ // Driver method to test above public static void main(String args()) { //declare an array of integers int intArray() = {23,43,13,65,11,62,76,83,9,71,84,34,96,80}; //print original array System.out.println('Original array: ' + Arrays.toString(intArray)); int n = intArray.length; //iterate over the array comparing adjacent elements for (int i = 0; i intArray(j+1)) { int temp = intArray(j); intArray(j) = intArray(j+1); intArray(j+1) = temp; } //print the sorted array System.out.println('Sorted array: ' + Arrays.toString(intArray)); } }
Produksjon:
Opprinnelig matrise: (23, 43, 13, 65, 11, 62, 76, 83, 9, 71, 84, 34, 96, 80)
Sortert utvalg: (9, 11, 13, 23, 34, 43, 62, 65, 71, 76, 80, 83, 84, 96)
ofte stilte spørsmål
Q # 1) Hva er sorteringsalgoritmene i Java?
Svar: Sorteringsalgoritmen kan defineres som en algoritme eller prosedyre der elementene i en samling kan bestilles eller ordnes på ønsket måte.
Nedenfor er noen av sorteringsalgoritmene som støttes i Java:
- Boblesortering
- Sortering av innsetting
- Valg sorter
- Slå sammen sortering
- Quicksort
- Radix-sortering
- Heapsort
Q # 2) Hva er den beste sorteringsalgoritmen i Java?
Svar: Merge Sort skal være den raskeste sorteringsalgoritmen i Java. Faktisk har Java 7 internt brukt flettesortering for å implementere Collections.sort () -metoden. Rask sortering er også en annen beste sorteringsalgoritme.
Q # 3) Hva er Bubble sort i Java?
Svar: Boblesortering er den enkleste algoritmen i Java. Boblesortering sammenligner alltid to tilstøtende elementer i listen og bytter dem hvis de ikke er i ønsket rekkefølge. Dermed, på slutten av hver iterasjon eller passering, bobles det tyngste elementet opp til riktig sted.
Q # 4) Hvorfor er Bubble sort Nto?
Svar: For å implementere boblesortering bruker vi to for løkker.
hva er den beste mp3-omformeren
Det totale utførte arbeidet måles av:
Mengden arbeid utført med indre sløyfe * totalt antall ganger den ytre sløyfen går.
For en liste over n elementer fungerer den indre sløyfen for O (n) for hver iterasjon. Den ytre sløyfen går for O (n) iterasjon. Derfor er totalarbeidet O (n) * O (n) = O (nto)
Sp # 15) Hva er fordelene med boble?
Svar: Fordelene med Bubble Sort er som følger:
- Lett å kode og forstå.
- Få kodelinjer kreves for å implementere algoritmen.
- Sorteringen gjøres på plass, dvs. ekstra minne er ikke nødvendig og dermed ikke noe minneoverhead.
- De sorterte dataene er umiddelbart tilgjengelige for behandling.
Konklusjon
Så langt diskuterte vi sorteringsalgoritmen Bubble Sort i Java. Vi har også utforsket algoritmen og detaljert illustrasjon av sortering av en matrise ved hjelp av Bubble Sort Technique. Så implementerte vi Java-programmet til Bubble Sort.
I neste opplæring vil vi fortsette med de andre sorteringsteknikkene i Java.
=> Sjekk ALLE Java-opplæringsprogrammer her.
Anbefalt lesing
- Valgsortering i Java - Valgsorteringsalgoritme og eksempler
- Insertion Sort In Java - Insertion Sort Algorithm & Eksempler
- Boblesortering i C ++ med eksempler
- Hvordan sortere en matrise i Java - Veiledning med eksempler
- Java Array Length Tutorial med kodeeksempler
- MongoDB Sort () Metode med eksempler
- Unix sorteringskommando med syntaks, alternativer og eksempler
- Java 'dette' nøkkelord: Opplæring med kodeeksempler