Uvod v Bubble Sort v Javi

Razporeditev mehurčkov je eden najpogostejših algoritmov za razvrščanje podatkov na Javi. Razvrščanje tukaj poteka tako, da rekurzivno primerjamo sosednja števila in jih premikamo v naraščajočem ali padajočem vrstnem redu, kot je potrebno. To premikanje elementov poteka, dokler niso vse številke popolnoma razvrščene v želenem vrstnem redu.

Ime "vrsta mehurčkov" tega algoritma je zato, ker elementi matrike mehurčijo svojo pot do začetka le-tega. Razložimo algoritem razvrščanja mehurčkov, na primer.

Primer: Razmislite o nizu števil (6 1 8 5 3), ki jih je treba razporediti v naraščajočem vrstnem redu.

Algoritem razvrščanja mehurčkov deluje v več iteracijah, dokler ne ugotovi, da so vsa števila razvrščena.

Iteracije

Spodaj so ponovljene iteracije v Razvrsti mehurčki na Javi, in sicer:

Prva ponovitev

(6 1 8 5 3) - Začne se s primerjanjem prvih dveh števil in premakne manjše število obeh v desno. Tako je med 6 in 1 manjše število premaknjeno v levo in 6 v desno.

(1 6 8 5 3) - Nato primerja sosednji dve številki s premikanjem enega položaja v desno. Tu je število 6 manjše od 8, zato se ohrani isti vrstni red.

(1 6 8 5 3) - Ponovno s premikanjem enega položaja v desno primerjava poteka med 8 in 5. Število 5 se premakne v levo, saj je manjše od 8.

(1 6 5 8 3) - Tu primerjava poteka med števkama 8 in 3. Število 3 se premakne v levo, saj je manjše od 8.

(1 6 5 3 8) - To je končni rezultat naročila po 1. ponovitvi.

Druga ponovitev

Ker številke še vedno niso povsem v naraščajočem vrstnem redu, gre program v drugo iteracijo.

(1 6 5 3 8) - Tu se primerjava spet začne od prvih dveh števk rezultata iz prve ponovitve. Primerja števil 1 in 6 in ohranja isti vrstni red, saj je 1 manjši od 6.

(1 6 5 3 8) - Tu se primerjata številki 5 in 6. Obdrži se isti vrstni red, kot je že v zahtevanem naraščajočem vrstnem redu.

(1 5 6 3 8) - Tu primerjava poteka med števili 6 in 3. Število 3 se premakne v levo, saj je manjše od 6.

(1 5 3 6 8) - Naslednji številki 6 in 8 se primerjata med seboj. Obdrži se enako kot v pričakovanem vrstnem redu.

(1 5 3 6 8) - To je končni rezultat po drugi ponovitvi. Kljub temu lahko opazimo, da števke niso povsem razporejene v naraščajočem vrstnem redu. Kljub temu moramo zamenjati številki 5 in 3, da dobimo končni rezultat. Zato gre program za tretjo ponovitev.

Tretja Iteracija

(1 5 3 6 8) - Tretja ponovitev se začne s primerjanjem prvih dveh števk 1 in 5. Ker je vrstni red po pričakovanjih enak.

(1 5 3 6 8) - Nato se primerjata sosednji številki 3 in 5. Ker je 5 večja od 3, se premakne na desno stran.

(1 3 5 6 8) - Iteracija nadaljuje primerjavo številk 5 in 6, 6 in 8. Ker je v želenem vrstnem redu, ohrani vrstni red.

(1 3 5 6 8) - Končno se iteracija ustavi, ko program prehaja primerjavo vsakega sosednjega elementa in ugotovi, da so vse števke v naraščajočem vrstnem redu.

Ker je bilo tukaj le 5 elementov matrike, ki jih je bilo treba razvrstiti, je bilo potrebnih le 3 iteracije. Ko se elementi v matriki povečujejo, se poveča tudi količina iteracij.

Izvedba razvrščanja mehurčkov z uporabo Jave

Spodaj je koda Java, ki je izvajanje algoritma razvrščanja mehurčkov. (Upoštevajte, da se prvi položaj matrike v Javi začne z 0 in nadaljuje s koraki po 1, tj. Matrika (0), matrika (1), matrika (2) in nadaljuje.)

Koda:

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
)
)
)

Izhod:

Prednosti in slabosti razvrščanja mehurčkov na Javi

Spodaj so različne prednosti in slabosti sorte mehurčkov v javi:

Prednosti

  1. Kodo je zelo enostavno napisati in razumeti. Običajno traja le nekaj minut.
  2. Izvajanje je tudi zelo enostavno.
  3. Razvrščanje po mehurčkih razvršča številke in jih ohranja v spominu, zato prihrani veliko pomnilnika.

Slabosti

  1. Ta algoritem ni primeren za velike nabore podatkov, saj primerjava traja veliko časa. Čas, potreben za razvrščanje vhodnih številk, narašča eksponentno.
  2. O (n 2) je povprečna zahtevnost sorte mehurčkov in O (n) najboljša kompleksnost primerov (najboljši primer je, ko so elementi razvrščeni na prvem mestu), kjer je n število elementov.

Aplikacije v realnem času

Ker je Bubble vrsta sposobna zaznati minutne napake pri razvrščanju, se uporablja v računalniški grafiki. Uporablja se tudi v algoritmu polnjenja poligona, kjer je treba razvrstiti obloge opornic poligona.

Zaključek

V tem članku smo videli, kako deluje algoritem razvrščanja mehurčkov in kako ga je mogoče izvajati s programiranjem Java. Razporeditev mehurčkov je zelo stabilen algoritem, ki ga je mogoče enostavno uporabiti za razmeroma majhne naloge podatkov. Gre za primerjalni algoritem in ga novinci zaradi svoje preprostosti uporabljajo.

Priporočeni članki

To je vodnik za Razvrščanje mehurčkov v Javi. Tukaj razpravljamo o več iteracijah za izvedbo sortiranja mehurčkov v javi in ​​njegovem izvajanju kode ter prednosti in slabosti. Če želite izvedeti več, si oglejte tudi naslednje članke -

  1. Bubble Razvrsti v JavaScript
  2. Razvrščanje po R
  3. 3D matriki na Javi
  4. Nizi v C #
  5. Bubble Sort in Python