Johdanto Kuplalajitteluun Java-sovelluksessa

Kuplalajittelu on yksi yleisimmin käytettyjä algoritmeja tietojen lajitteluun Java-sovelluksissa. Täällä lajittelu tapahtuu vertaamalla vierekkäisiä numeroita rekursiivisesti ja siirtämällä niitä kasvavassa tai laskevassa järjestyksessä tarpeen mukaan. Tämä elementtien siirtäminen tapahtuu, kunnes kaikki numerot on lajiteltu kokonaan vaaditussa järjestyksessä.

Tämän algoritmin nimi ”Bubble sort” johtuu siitä, että taulukon elementit kupliavat sen alkuun. Ymmärtäkäämme kuplalajittelualgoritmi ottamalla esimerkki.

Esimerkki: Harkitse joukko numeroita (6 1 8 5 3), jotka on järjestettävä kasvavaan järjestykseen.

Kuplalajittelualgoritmi toimii useissa iteraatioissa, kunnes se toteaa, että kaikki numerot on lajiteltu.

toistojen

Alla on Java-kuplalajittelulaitteessa suoritetut iteraatiot, jotka ovat seuraavat:

Ensimmäinen toisto

(6 1 8 5 3) - Aloitetaan vertaamalla kahta ensimmäistä numeroa ja siirtämällä pienempi numero oikealle. Siten välillä 6 ja 1, 1 on pienempi luku siirtyi vasemmalle ja 6 oikealle.

(1 6 8 5 3) - Seuraavaksi se vertaa vierekkäisiä kahta numeroa siirtämällä yhtä paikkaa oikealle. Tässä numero 6 on vähemmän kuin 8, joten sama järjestys säilyy.

(1 6 8 5 3) - Jälleen siirtämällä yhtä asentoa oikealle vertailu tapahtuu välillä 8 ja 5. Numero 5 siirtyy vasemmalle, koska se on pienempi kuin 8.

(1 6 5 8 3) - Tässä vertailu tapahtuu numeroiden 8 ja 3 välillä. Numero 3 siirtyy vasemmalle, koska se on pienempi kuin 8.

(1 6 5 3 8) - Tämä on tilauksen lopullinen tulos ensimmäisen iteraation jälkeen.

Toinen toisto

Koska numerot eivät vielä ole täysin kasvavassa järjestyksessä, ohjelma jatkaa toista iterausta.

(1 6 5 3 8) - Tässä vertailu alkaa jälleen tuloksen kahdesta ensimmäisestä numerosta ensimmäisestä iteraatiosta. Se vertaa numeroita 1 ja 6 ja säilyttää saman järjestyksen, koska 1 on pienempi kuin 6.

(1 6 5 3 8) - Tässä verrataan lukuja 5 ja 6. Sama tilaus säilyy, koska se on jo vaaditussa kasvavassa järjestyksessä.

(1 5 6 3 8) - Tässä vertailu tapahtuu numeroiden 6 ja 3 välillä. Numero 3 siirtyy vasemmalle, koska se on pienempi kuin 6.

(1 5 3 6 8) - Seuraavia numeroita 6 ja 8 verrataan toisiinsa. Säilytetään sama tilaus, kuin se on odotetussa järjestyksessä.

(1 5 3 6 8) - Tämä on lopullinen tulos toisen iterauksen jälkeen. Silti voimme huomata, että numerot eivät ole täysin järjestetty kasvavassa järjestyksessä. Silti meidän on vaihdettava numeroita 5 ja 3 lopputuloksen saamiseksi. Ohjelma menee siis kolmanteen toistoon.

Kolmas toisto

(1 5 3 6 8) - Kolmas iterointi alkaa vertaamalla kahta ensimmäistä numeroa 1 ja 5. Koska järjestys on odotetusti, se pysyy samana.

(1 5 3 6 8) - Seuraavaksi verrataan vierekkäisiä numeroita 3 ja 5. Koska 5 on suurempi kuin 3, se siirretään oikealle puolelle.

(1 3 5 6 8) - Toisto jatkaa numeroiden 5 ja 6, 6 ja 8 vertailua. Koska se on vaaditussa järjestyksessä, se pitää järjestyksen.

(1 3 5 6 8) - Lopuksi iterointi lopetetaan, kun ohjelma kulkee vertaamalla kutakin vierekkäistä elementtiä ja huomaa, että kaikki numerot ovat kasvavassa järjestyksessä.

Koska tässä taulukossa oli vain 5 elementtiä, jotka oli tarpeen lajitella, kesti vain 3 iteraatiota. Kun taulukon elementit lisääntyvät, myös iteraatioiden määrä kasvaa.

Kuplalajittelu Toteutus Java-sovelluksella

Alla on Java-koodi, joka toteuttaa Bubble-lajittelualgoritmin. (Huomaa, että taulukon ensimmäinen sijainti Java alkaa 0: sta ja jatkuu asteikolla 1 eli taulukko (0), taulukko (1), taulukko (2) ja jatkuu.)

Koodi:

import java.util.Scanner;
public class BubbleSort (
static void bubbleSort(int() arraytest) (
int n = arraytest.length; //length of the array is initialized to the integer n
int temp = 0; //A temporary variable called temp is declared as an integer and initialized to 0
for(int i=0; i < n; i++)( // first for loop performs multiple iterations
for(int j=1; j < (ni); j++)(
if(arraytest(j-1) > arraytest(j))( // if loop compares the adjacent numbers
// swaps the numbers
temp = arraytest(j-1); // assigns the greater number to temp variable
arraytest(j-1) = arraytest(j); // shifts the lesser number to the previous position
arraytest(j) = temp; // bigger number is then assigned to the right hand side
)
)
)
)
public static void main(String() args) (
int arraytest() =(23, 16, 3, 42, 75, 536, 61); // defining the values of array
System.out.println("Array Before Doing Bubble Sort");
for(int i=0; i < arraytest.length; i++)( // for loop used to print the values of array
System.out.print(arraytest(i) + " ");
)
System.out.println();
bubbleSort(arraytest); // array elements are sorted using bubble sort function
System.out.println("Array After Doing Bubble Sort");
for(int i=0; i < arraytest.length; i++)(
System.out.print(arraytest(i) + " "); // for loop to print output values from array
)
)
)

lähtö:

Kuplalajitteluun liittyvät edut ja haitat Java-ohjelmassa

Seuraavassa on Java-kuplalajittelun erilaiset edut ja haitat:

edut

  1. Koodi on erittäin helppo kirjoittaa ja ymmärtää. Tyypillisesti kestää vain muutaman minuutin.
  2. Toteutus on myös erittäin helppoa.
  3. Kuplalajittelu lajittelee numerot ja pitää ne muistissa, mikä säästää paljon muistia.

haitat

  1. Tämä algoritmi ei sovellu suuriin tietojoukkoihin, koska vertailu vie paljon aikaa. Sisääntulolukujen lajitteluun kuluva aika kasvaa räjähdysmäisesti.
  2. O (n 2) on kuplalajittelun keskimääräinen monimutkaisuus ja O (n) on parhaan tapauksen monimutkaisuus (paras tapaus on, kun elementit lajitellaan ensin), missä n on elementtien lukumäärä.

Reaaliaikaiset sovellukset

Koska Bubble sort pystyy havaitsemaan pienimmät virheet lajittelussa, sitä käytetään tietokonegrafiikassa. Sitä käytetään myös monikulmion täyttöalgoritmissa, missä monikulmion vuoraukset on lajiteltava.

johtopäätös

Tässä artikkelissa näimme, kuinka Bubble-lajittelualgoritmi toimii ja kuinka se voidaan toteuttaa Java-ohjelmoinnin avulla. Kuplalajittelu on erittäin vakaa algoritmi, joka voidaan helposti toteuttaa suhteellisen pienille tietojoukkoille. Kyse on vertailualgoritmista, ja aloittelijat käyttävät sitä yksinkertaisuutensa vuoksi.

Suositellut artikkelit

Tämä on opas Bubble Sort Java -sovellukseen. Tässä keskustellaan useista iteroinneista kuplalajittelun suorittamiseksi Java-ohjelmassa ja sen koodin toteutuksesta sekä eduista ja haitoista. Voit myös katsoa seuraavia artikkeleita saadaksesi lisätietoja -

  1. Kupla Lajittele JavaScript
  2. Lajittelu R
  3. 3D-taulukot Java-tilassa
  4. Ryhmät C #
  5. Kuplalajittelu Pythonissa