Въведение в сортирането на балони в Java

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

Наименованието „Сорт на балончета“ на този алгоритъм е, защото елементите на масив преминават в началото на него. Нека разберем алгоритъма за сортиране на балончета, като вземем пример.

Пример: Помислете масив от числа (6 1 8 5 3), които трябва да бъдат подредени във увеличаващ се ред.

Алгоритъмът за сортиране на балони работи в множество итерации, докато установи, че всички числа са подредени.

повторения

По-долу са итерациите, изпълнени в Bubble Sort в Java, което е както следва:

Първа итерация

(6 1 8 5 3) - Започва с сравняване на първите две числа и измества по-малкото число от двете вдясно. Следователно между 6 и 1, 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 повторения. С увеличаването на елементите в масива се увеличава и количеството итерации.

Реализиране на Bubble Sort с помощта на 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
)
)
)

изход:

Предимства и недостатъци на Bubble Sort в Java

По-долу са различните предимства и недостатъци на сорта балон в java:

Предимства

  1. Кодът е много лесен за писане и разбиране. Обикновено отнема само няколко минути.
  2. Изпълнението също е много лесно.
  3. Сортирането на балони сортира числата и ги запазва в паметта, следователно спестява много памет.

Недостатъци

  1. Този алгоритъм не е подходящ за големи набори от данни, тъй като сравнението отнема много време. Времето, необходимо за сортиране на входящите числа, нараства експоненциално.
  2. O (n 2) е средната сложност на сортирането на Bubble и O (n) е най-добрата сложност на случая (най-добрият случай е, когато елементите са сортирани на първо място), където n е броят на елементите.

Приложения в реално време

Тъй като сортът Bubble е способен да открива минутни грешки при сортирането, той се използва в компютърната графика. Използва се и в алгоритъма за запълване на многоъгълник, при който върховете на полигона трябва да бъдат сортирани.

заключение

В тази статия видяхме как работи алгоритъмът за сортиране на Bubble и как може да се реализира с помощта на Java програмиране. Сортирането на балоните е много стабилен алгоритъм, който лесно може да бъде приложен за сравнително малки набори от данни. Той е случай на алгоритъм за сравнение и се използва от новаците поради неговата простота.

Препоръчителни статии

Това е ръководство за сортиране на балони в Java. Тук обсъждаме множество итерации за извършване на сортиране на балончета в Java и нейната реализация на код, заедно с предимства и недостатъци. Можете също да разгледате следните статии, за да научите повече -

  1. Bubble Сортиране в JavaScript
  2. Сортиране в R
  3. 3D масиви в Java
  4. Масиви в C #
  5. Сортиране на балони в Python