Вступ до сортування бульбашок на Java

Сортування бульбашок - один з найбільш часто використовуваних алгоритмів для сортування даних на Java. Сортування тут проводиться шляхом рекурсивного порівняння сусідніх чисел та зміщення їх у порядку збільшення чи зменшення за потребою. Це зміщення елементів робиться до тих пір, поки всі цифри не будуть повністю відсортовані в потрібному порядку.

Назва "сортування бульбашок" цього алгоритму пояснюється тим, що елементи масиву пускають його до початку його. Давайте розберемося з алгоритмом сортування міхурів, взявши приклад.

Приклад: Розглянемо масив чисел (6 1 8 5 3), який потрібно розташувати у порядку зростання.

Алгоритм сортування міхурів працює в декількох ітераціях, поки не виявиться, що всі числа відсортовані.

Ітерації

Нижче показані ітерації, виконані в Bubble Sort на Java, який є наступним:

Перша ітерація

(6 1 8 5 3) - Починається з порівняння перших двох чисел і зміщення меншої кількості двох праворуч. Отже, серед 6 і 1, менша кількість зміщена вліво і 6 вправо.

(1 6 8 5 3) - Далі вона порівнює сусідні два числа, зміщуючи одне положення праворуч. Тут число 6 менше 8, отже, зберігається той самий порядок.

(1 6 8 5 3) - Знову при зміщенні одного положення вправо порівняння відбувається між 8 і 5. Число 5 переміщується вліво, оскільки воно менше 8.

(1 6 5 8 3) - Тут порівняння відбувається між числами 8 і 3. Число 3 зміщується вліво, оскільки воно менше 8.

(1 6 5 3 8) - Це кінцевий результат замовлення після 1-ї ітерації.

Друга ітерація

Оскільки цифри ще не повністю змінюються, програма переходить до другої ітерації.

(1 6 5 3 8) - Тут порівняння знову починається з перших двох цифр результату від першої ітерації. Він порівнює числа 1 і 6 і зберігає той самий порядок, оскільки 1 менше, ніж 6.

(1 6 5 3 8) - Тут порівнюються числа 5 і 6. Зберігається той самий порядок, який вже є в необхідному порядку збільшення.

(1 5 6 3 8) - Тут відбувається порівняння між числами 6 і 3. Число 3 зміщується вліво, оскільки воно менше, ніж 6.

(1 5 3 6 8) - Наступні числа 6 і 8 порівнюються між собою. Таке ж замовлення зберігається, як і в очікуваному порядку.

(1 5 3 6 8) - Це кінцевий результат після другої ітерації. Але ми можемо помітити, що цифри не повністю розташовані в порядку їх збільшення. Ще нам потрібно обміняти числами 5 і 3, щоб отримати остаточний результат. Звідси програма йде на третю ітерацію.

Третя ітерація

(1 5 3 6 8) - Третя ітерація починається з порівняння перших двох цифр 1 і 5. Оскільки порядок є таким, як очікувалося, він зберігається колишнім.

(1 5 3 6 8) - Далі порівнюються суміжні числа 3 і 5. Оскільки 5 більше, ніж 3, він зміщується в праву сторону.

(1 3 5 6 8) - Ітерація продовжується для порівняння чисел 5 і 6, 6 і 8. Оскільки вона знаходиться в необхідному порядку, вона зберігає порядок.

(1 3 5 6 8) - Нарешті ітерація припиняється, коли програма проходить порівняння кожного суміжного елемента та виявляє, що всі цифри знаходяться у порядку зростання.

Оскільки тут було лише 5 елементів масиву, які потрібно було сортувати, то було потрібно всього 3 ітерації. Зі збільшенням елементів у масиві також збільшується кількість ітерацій.

Реалізація сортування бульбашок за допомогою Java

Нижче представлений код Java, який реалізує алгоритм сортування Bubble. (Зверніть увагу, що перша позиція масиву в Java починається з 0 і продовжується з кроком 1, тобто масив (0), масив (1), масив (2) і він продовжується.)

Код:

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

Вихід:

Переваги та недоліки сортування бульбашок на Java

Нижче наведено різні переваги та недоліки сортування міхурів у java:

Переваги

  1. Код дуже легко написати і зрозуміти. Зазвичай займає всього кілька хвилин.
  2. Реалізація також дуже проста.
  3. Сортування бульбашок сортує числа та зберігає їх у пам’яті, отже, економить багато пам’яті.

Недоліки

  1. Цей алгоритм не підходить для великих наборів даних, оскільки порівняння займає багато часу. Час, необхідний для сортування вхідних чисел, збільшується експоненціально.
  2. O (n 2) - середня складність сортування бульбашок, а O (n) - найкраща складність випадку (найкращий випадок, коли елементи впорядковані в першу чергу), де n - кількість елементів.

Програми в режимі реального часу

Оскільки сорт Bubble здатний виявляти хвилинні помилки в сортуванні, він використовується в комп'ютерній графіці. Він також використовується в алгоритмі заповнення багатокутника, де вершини підкладки полігону необхідно сортувати.

Висновок

У цій статті ми побачили, як працює алгоритм сортування Bubble і як його можна реалізувати за допомогою програмування Java. Сортування бульбашок - це дуже стабільний алгоритм, який легко реалізується для порівняно невеликих наборів даних. Це випадок алгоритму порівняння і використовується новачками через його простоту.

Рекомендовані статті

Це посібник зі сортування бульбашок на Java. Тут ми обговорюємо декілька ітерацій для виконання сортування бульбашок у java та її реалізації коду, а також переваги та недоліки. Ви також можете переглянути наступні статті, щоб дізнатися більше -

  1. Сортування бульбашок у JavaScript
  2. Сортування в R
  3. 3D-масиви на Java
  4. Масиви в C #
  5. Сортування бульбашок в Python