Mullide sortimise sissejuhatus Java-s

Mullide sortimine on Java-s andmete sorteerimiseks kõige sagedamini kasutatav algoritm. Siia sorteerimiseks võrreldakse külgnevaid numbreid rekursiivselt ja nihutatakse neid vastavalt vajadusele kasvavas või kahanevas järjekorras. Elementide nihutamine toimub seni, kuni kõik numbrid on vajalikus järjekorras täielikult sorteeritud.

Selle algoritmi nimi “Bubble sort” tuleneb sellest, et massiivi elemendid mullivad nende alguse juurde. Mõistagem mullide sortimise algoritmi näite abil.

Näide: Vaatleme arvude massiivi (6 1 8 5 3), mis tuleb järjestada kasvavas järjekorras.

Mullide sortimise algoritm töötab mitme iteratsioonina, kuni leiab, et kõik numbrid on sorteeritud.

Kordused

Allpool on Java-keeles mullide sortimisel teostatud iteratsioonid, mis on järgmised:

Esimene kordamine

(6 1 8 5 3) - alustatakse kahe esimese numbri võrdlemisest ja nihutatakse väiksemat numbrit paremale. Seega vahemikus 6 ja 1 on 1 väiksem number nihutatud vasakule ja 6 paremale.

(1 6 8 5 3) - järgmisena võrreldakse kahte külgnevat arvu, nihutades ühte positsiooni paremale. Siin on number 6 väiksem kui 8 ja seega säilitatakse sama järjekord.

(1 6 8 5 3) - Üht positsiooni nihutades paremale, toimub võrdlus taas vahemikus 8 kuni 5. Number 5 nihkub vasakule, kuna see on väiksem kui 8.

(1 6 5 8 3) - siin toimub võrdlus numbrite 8 ja 3 vahel. Number 3 nihkub vasakule, kuna see on väiksem kui 8.

(1 6 5 3 8) - see on tellimuse lõpptulemus pärast esimest iteratsiooni.

Teine kordamine

Kuna numbrid pole veel täielikult kasvavas järjekorras, läheb programm teiseks iteratsiooniks.

(1 6 5 3 8) - siin algab võrdlus uuesti esimese iteratsiooni tulemuse kahe esimese numbriga. Selles võrreldakse numbreid 1 ja 6 ning säilitatakse sama järjekord, kuna 1 on väiksem kui 6.

(1 6 5 3 8) - siin võrreldakse numbreid 5 ja 6. Säilitatakse sama järjekord, kuna see on juba nõutavas suurenevas järjekorras.

(1 5 6 3 8) - Võrdlus toimub numbrite 6 ja 3 vahel. Number 3 nihutatakse vasakule, kuna see on väiksem kui 6.

(1 5 3 6 8) - järgmisi numbreid 6 ja 8 võrreldakse üksteisega. Säilitatakse sama järjekord, nagu see on eeldatud järjekorras.

(1 5 3 6 8) - see on lõpptulemus pärast teist iteratsiooni. Siiski võime märgata, et numbrid pole kasvavas järjekorras täielikult paigutatud. Lõpliku tulemuse saamiseks peame ikkagi vahetama numbrid 5 ja 3. Seega läheb programm kolmandaks iteratsiooniks.

Kolmas kordamine

(1 5 3 6 8) - kolmas iteratsioon algab kahe esimese numbri 1 ja 5 võrdlemisega. Kuna järjekord on ootuspärane, jääb see samaks.

(1 5 3 6 8) - Järgnevalt võrreldakse külgnevaid numbreid 3 ja 5. Kuna 5 on suurem kui 3, nihutatakse see paremale küljele.

(1 3 5 6 8) - iteratsioon jätkub arvude 5 ja 6, 6 ja 8 võrdlemiseks. Kuna see on vajalikus järjekorras, säilitab see järjekorra.

(1 3 5 6 8) - Lõpuks iteratsioon peatatakse, kuna programm astub üles kõrvutades iga külgnevat elementi ja leiab, et kõik numbrid on kasvavas järjekorras.

Kuna siin oli ainult 5 massiivi elementi, mida oli vaja sortida, kulus kokku ainult 3 iteratsiooni. Massiivi elementide suurenedes suureneb ka iteratsioonide arv.

Mullide sorteerimise rakendamine Java abil

Allpool on Java-kood, mis on Bubble'i sortimisalgoritmi rakendamine. (Pange tähele, et massiivi esimene asukoht Java-s algab 0-st ja jätkub sammuga 1, so massiiv (0), massiiv (1), massiiv (2) ja see jätkub.)

Kood:

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

Väljund:

Mullide sortimise eelised ja puudused Java-s

Allpool on mullide sortimise erinevad eelised ja puudused javas:

Eelised

  1. Koodi on väga lihtne kirjutada ja mõista. Tavaliselt võtab see vaid paar minutit.
  2. Ka rakendamine on väga lihtne.
  3. Mullide sortimine sorteerib numbrid ja hoiab neid mälus, säästes seega palju mälu.

Puudused

  1. See algoritm ei sobi suurte andmekogumite jaoks, kuna võrdlemine võtab palju aega. Sisendnumbrite sorteerimiseks kuluv aeg kasvab plahvatuslikult.
  2. O (n 2) on mullide sorteerimise keskmine keerukus ja O (n) on parimate juhtumite keerukus (parim juhul, kui elemendid on sorteeritud), kus n on elementide arv.

Reaalajas rakendused

Kuna Bubble sort on võimeline tuvastama sortimisel mingeid vigu, kasutatakse seda arvutigraafikas. Seda kasutatakse ka hulknurga täitmise algoritmis, kus tuleb hulknurga vooderdise tippe sortida.

Järeldus

Selles artiklis nägime, kuidas Bubble'i sortimise algoritm töötab ja kuidas seda saab Java-programmeerimise abil rakendada. Mullide sortimine on väga stabiilne algoritm, mida saab hõlpsasti rakendada suhteliselt väikeste andmekogumite jaoks. Tegemist on võrdlusalgoritmiga ja algajad kasutavad seda oma lihtsuse tõttu.

Soovitatavad artiklid

See on Java Bubble Sortimise juhend. Siin räägime mitmest iteratsioonist javas mullide sortimise teostamiseks ja selle koodi rakendamiseks koos eeliste ja puudustega. Lisateabe saamiseks võite vaadata ka järgmisi artikleid -

  1. Mull Sorteeri JavaScriptis
  2. Sorteerimine R-s
  3. 3D-massiivid Java-s
  4. Massiivid C # -s
  5. Mullide sortimine Pythonis

Kategooria: