Bubble Sort a Java alkalmazásban

A Bubble Sort az egyik leggyakrabban használt algoritmus az adatok szortírozásához a Java-ban. Az itt történő rendezéshez a szomszédos számokat rekurzív módon hasonlítják össze, és szükség szerint növekvő vagy csökkenő sorrendbe mozgatják őket. Az elemek elmozdítása mindaddig zajlik, amíg az összes számjegyet a kívánt sorrendbe nem rendezik.

Ennek az algoritmusnak a „Bubble sort” neve azért van, mert a tömb elemei az elejéhez buborékolnak. Példa segítségével megértsük a buborék rendezési algoritmust.

Példa: Vegyünk egy számot (6 1 8 5 3), amelyet növekvő sorrendben kell elrendezni.

A Bubble sort algoritmus több iterációban működik, amíg meg nem találja, hogy az összes szám rendezve van.

Az ismétlések

Az alábbiakban a Bubble Sort Java-ban végrehajtott iterációk szerepelnek, amelyek a következők:

Első iteráció

(6 1 8 5 3) - Az első két szám összehasonlításával kezdődik, és a kettő közül a kisebb számot jobbra tolja. Ennélfogva a 6 és az 1 között 1-nél kisebb a szám balra és 6 jobbra.

(1 6 8 5 3) - Ezután összehasonlítja a szomszédos két számot az egyik helyzet jobbra tolásával. Itt a 6. szám kisebb, mint 8, és ezért ugyanaz a sorrend megmarad.

(1 6 8 5 3) - Az egyik helyzet jobbra tolásával 8 és 5 között történik az összehasonlítás. Az 5. szám balra tolódik el, mivel kisebb, mint 8.

(1 6 5 8 3) - Itt összehasonlítják a 8. és a 3. számot. A 3. számot balra tolják, mivel kisebb, mint 8.

(1 6 5 3 8) - Ez a végzés eredménye az első iteráció után.

Második ismétlés

Mivel a számok még mindig nem teljes mértékben növekvő sorrendben vannak, a program a második iterációra megy.

(1 6 5 3 8) - Itt az összehasonlítás ismét az első iteráció eredményének első két számjegyétől kezdődik. Összehasonlítja az 1. és a 6. számot, és ugyanazt a sorrendet tartja, mivel az 1 kisebb, mint 6.

(1 6 5 3 8) - Itt összehasonlítjuk az 5. és a 6. számot. Ugyanaz a sorrend megmarad, mivel már a szükséges növekvő sorrendben van.

(1 5 6 3 8) - Itt összehasonlítjuk a 6 és a 3 számot. A 3. szám balra tolódik el, mivel kisebb, mint 6.

(1 5 3 6 8) - A következő 6. és 8. számot összehasonlítjuk. Ugyanaz a sorrend marad meg, ahogyan az várható sorrendben van.

(1 5 3 6 8) - Ez a végső eredmény a második iteráció után. Ennek ellenére észrevehetjük, hogy a számjegyek növekvő sorrendjében nincs teljesen elrendezve. Ennek ellenére meg kell cserélnünk az 5. és a 3. számot a végső eredmény elérése érdekében. Ezért a program a harmadik iterációra megy.

Harmadik ismétlés

(1 5 3 6 8) - A harmadik iteráció az első két számjegy 1. és 5. számának összehasonlításával kezdődik. Mivel a sorrend a vártnak megfelelően változatlan marad.

(1 5 3 6 8) - Ezután összehasonlítjuk a szomszédos 3 és 5 számokat. Mivel az 5 nagyobb, mint 3, a jobb oldalra tolódik.

(1 3 5 6 8) - Az iteráció folytatódik az 5. és a 6., a 6. és a 8. szám összehasonlításához. Mivel a kívánt sorrendben van, megtartja a sorrendet.

(1 3 5 6 8) - Végül az iteráció leáll, mivel a program áthalad az egyes szomszédos elemek összehasonlításával, és megállapítja, hogy az összes szám növekvõ sorrendben van.

Mivel itt csak egy tömb 5 eleme volt, amelyeket rendezni kellett, összesen csak 3 iterációra volt szükség. A tömb elemeinek növekedésével az iterációk mennyisége is növekszik.

Buborék-rendezés megvalósítása Java segítségével

Az alábbiakban a Java kód található, amely a Bubble sort algoritmus megvalósítását jelenti. (Vegye figyelembe, hogy a tömb első pozíciója a Java-ban 0-on kezdődik, és 1-es lépésekben folytatódik, azaz tömb (0), tömb (1), tömb (2) és folytatódik.)

Kód:

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

Kimenet:

A Bubble Sort előnyei és hátrányai Java-ban

Az alábbiakban bemutatjuk a java buborékfajtájának különféle előnyeit és hátrányait:

Előnyök

  1. A kód nagyon könnyen írható és érthető. Általában csak néhány percig tart.
  2. A végrehajtás szintén nagyon egyszerű.
  3. A buborékrendezés a számokat rendezi, és a memóriában tartja, így sok memóriát takarít meg.

hátrányok

  1. Ez az algoritmus nem alkalmas nagy adatkészletekhez, mivel az összehasonlítás sok időt vesz igénybe. A bemeneti számok rendezéséhez szükséges idő exponenciálisan növekszik.
  2. O (n 2) a Bubble rendezés átlagos bonyolultsága, O (n) pedig a legjobb eset bonyolultsága (a legjobb eset, ha az elemeket első sorrendben rendezik), ahol n az elemek száma.

Valós idejű alkalmazások

Mivel a Bubble sort képes észlelni a szétosztási hibákat, ezt a számítógépes grafikában használják. A sokszög kitöltési algoritmusában is használják, ahol a sokszög béléseit csúcsokra kell rendezni.

Következtetés

Ebben a cikkben láttuk, hogyan működik a Bubble sort algoritmus, és hogyan lehet azt Java programozással megvalósítani. A Bubble sort egy nagyon stabil algoritmus, amely viszonylag kicsi adatkészletekhez könnyen megvalósítható. Ez egy összehasonlító algoritmus esete, és az újoncok az egyszerűség miatt használják.

Ajánlott cikkek

Ez egy útmutató a Bubble Sort for Java-hoz. Itt tárgyaljuk a többszörös iterációkat, hogy a java-ban rendezzük a buborékot és annak kódját, valamint előnyeit és hátrányait. A következő cikkeket is megnézheti további információkért -

  1. Bubble Rendezés a JavaScript-ben
  2. Rendezés R
  3. 3D tömbök Java-ban
  4. Tömbök C # -ben
  5. Bubble Sort in Python

Kategória: