Wprowadzenie do Bubble Sort w Javie

Sortowanie bąbelkowe jest jednym z najczęściej używanych algorytmów do sortowania danych w Javie. Sortowanie tutaj odbywa się poprzez rekurencyjne porównywanie sąsiednich liczb i przesuwanie ich w kolejności rosnącej lub malejącej zgodnie z wymaganiami. Przesuwanie elementów odbywa się do momentu, aż wszystkie cyfry zostaną całkowicie posortowane w wymaganej kolejności.

Nazwa „Sortowanie bąbelkowe” tego algorytmu wynika z tego, że elementy tablicy bąbelkują drogę do jej początku. Pozwól nam zrozumieć algorytm sortowania bąbelkowego, biorąc przykład.

Przykład: Rozważ tablicę liczb (6 1 8 5 3), które należy uporządkować w kolejności rosnącej.

Algorytm sortowania bąbelkowego działa w wielu iteracjach, dopóki nie stwierdzi, że wszystkie liczby są posortowane.

Iteracje

Poniżej znajdują się iteracje wykonywane w trybie sortowania pęcherzyków w Javie, które są następujące:

Pierwsza iteracja

(6 1 8 5 3) - Zaczyna się od porównania pierwszych dwóch liczb i przesuwa ich mniejszą liczbę w prawo. Stąd między 6 i 1, 1 to mniejsza liczba jest przesunięta w lewo, a 6 w prawo.

(1 6 8 5 3) - Następnie porównuje sąsiednie dwie liczby, przesuwając jedną pozycję w prawo. Tutaj liczba 6 jest mniejsza niż 8, a zatem zachowana jest ta sama kolejność.

(1 6 8 5 3) - Ponownie poprzez przesunięcie jednej pozycji w prawo porównanie odbywa się między 8 a 5. Liczba 5 zostaje przesunięta w lewo, ponieważ jest mniejsza niż 8.

(1 6 5 8 3) - Tutaj następuje porównanie liczb 8 i 3. Liczba 3 jest przesunięta w lewo, ponieważ jest mniejsza niż 8.

(1 6 5 3 8) - Jest to końcowy wynik zamówienia po 1. iteracji.

Druga iteracja

Ponieważ liczby wciąż nie są jeszcze w porządku rosnącym, program przechodzi do drugiej iteracji.

(1 6 5 3 8) - Tutaj porównanie zaczyna się ponownie od pierwszych dwóch cyfr wyniku z pierwszej iteracji. Porównuje liczby 1 i 6 i zachowuje tę samą kolejność, ponieważ 1 jest mniejsze niż 6.

(1 6 5 3 8) - Tutaj porównuje się liczby 5 i 6. Zachowywane jest to samo zamówienie, ponieważ jest już w wymaganym porządku rosnącym.

(1 5 6 3 8) - Tutaj porównuje się liczby 6 i 3. Liczba 3 jest przesunięta w lewo, ponieważ jest mniejsza niż 6.

(1 5 3 6 8) - Kolejne liczby 6 i 8 są porównywane ze sobą. Zachowywane jest takie samo zamówienie, jak w oczekiwanej kolejności.

(1 5 3 6 8) - Jest to wynik końcowy po drugiej iteracji. Mimo to możemy zauważyć, że cyfry nie są całkowicie uporządkowane w kolejności rosnącej. Nadal musimy wymienić liczby 5 i 3, aby uzyskać końcowy wynik. Dlatego program przechodzi do trzeciej iteracji.

Trzecia iteracja

(1 5 3 6 8) - Trzecia iteracja rozpoczyna się od porównania pierwszych dwóch cyfr 1 i 5. Ponieważ kolejność jest zgodna z oczekiwaniami, zostaje zachowana tak samo.

(1 5 3 6 8) - Następnie porównuje się sąsiednie liczby 3 i 5. Ponieważ 5 jest większe niż 3, zostaje przesunięte na prawą stronę.

(1 3 5 6 8) - Iteracja przechodzi do porównania liczb 5 i 6, 6 i 8. Ponieważ jest w wymaganej kolejności, zachowuje kolejność.

(1 3 5 6 8) - W końcu iteracja zostaje zatrzymana, gdy program przechodzi przez porównanie każdego sąsiedniego elementu i stwierdza, że ​​wszystkie cyfry są w kolejności rosnącej.

Ponieważ tutaj było tylko 5 elementów tablicy, które należało posortować, zajęło to tylko 3 iteracje. Wraz ze wzrostem liczby elementów w tablicy wzrasta również liczba iteracji.

Implementacja sortowania bąbelkowego przy użyciu Java

Poniżej znajduje się kod Java, który jest implementacją algorytmu sortowania bąbelkowego. (Zauważ, że pierwsza pozycja tablicy w Javie zaczyna się od 0 i kontynuuje przyrost o 1, tj. Tablica (0), tablica (1), tablica (2) i kontynuuje.)

Kod:

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

Wynik:

Zalety i wady sortowania bąbelkowego w Javie

Poniżej przedstawiamy różne zalety i wady sortowania bąbelkowego w Javie:

Zalety

  1. Kod jest bardzo łatwy do napisania i zrozumienia. Zazwyczaj zajmuje to tylko kilka minut.
  2. Wdrożenie jest również bardzo łatwe.
  3. Sortowanie bąbelkowe sortuje liczby i przechowuje je w pamięci, dzięki czemu oszczędza dużo pamięci.

Niedogodności

  1. Ten algorytm nie jest odpowiedni dla dużych zestawów danych, ponieważ porównanie zajmuje dużo czasu. Czas potrzebny do sortowania liczb wejściowych rośnie wykładniczo.
  2. O (n 2) jest średnią złożonością sortowania bąbelkowego, a O (n) jest złożonością najlepszego przypadku (najlepszym przypadkiem jest, gdy elementy są sortowane w pierwszej kolejności), gdzie n jest liczbą elementów.

Aplikacje w czasie rzeczywistym

Ponieważ sortowanie bąbelkowe jest w stanie wykryć drobne błędy w sortowaniu, jest używane w grafice komputerowej. Jest również stosowany w algorytmie wypełniania wielokąta, w którym należy posortować wyściółkę wierzchołków wielokąta.

Wniosek

W tym artykule widzieliśmy, jak działa algorytm sortowania bąbelkowego i jak można go zaimplementować za pomocą programowania Java. Sortowanie bąbelkowe jest bardzo stabilnym algorytmem, który można łatwo wdrożyć dla stosunkowo małych zestawów danych. Jest to algorytm porównawczy, który jest stosowany przez początkujących ze względu na swoją prostotę.

Polecane artykuły

To jest przewodnik po Bubble Sort w Javie. Tutaj omawiamy wiele iteracji w celu wykonania sortowania bąbelkowego w Javie i jego implementacji kodu wraz z zaletami i wadami. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej -

  1. Sortowanie bąbelkowe w JavaScript
  2. Sortowanie w R.
  3. Tablice 3D w Javie
  4. Tablice w C #
  5. Sortowanie bąbelkowe w Pythonie