bubble sort java java sorting algorithms code examples
Този урок ще обясни сортирането на балончета в Java заедно с основния алгоритъм за сортиране на Java, внедряването на сортиране на балончета и примери за кодове:
Алгоритъмът за сортиране може да бъде дефиниран като алгоритъм или процедура за поставяне на елементи от колекция в определен ред. Например, ако имате числова колекция като ArrayList на цели числа, тогава може да искате да подредите елементите на ArrayList във възходящ или низходящ ред.
По същия начин може да искате да подредите низове от колекция от низове по азбучен или лексикографски ред. Тук се появяват алгоритмите за сортиране в Java.
как да стартирате .bin файлове
Какво ще научите:
Основни алгоритми за сортиране в Java
Алгоритмите за сортиране обикновено се оценяват в зависимост от времевата и пространствената сложност. Java поддържа различни алгоритми за сортиране, които се използват за сортиране или подреждане на колекциите или структурите на данни.
Таблицата по-долу показва основните алгоритми за сортиране, поддържани в Java, заедно с техните най-добри / най-лошите случаи.
Сложност във времето | ||||
---|---|---|---|---|
Сортиране на Radix | Алгоритъм за линейно сортиране. | O (nk) | O (nk) | O (nk) |
Алгоритъм за сортиране | Описание | Най-добрият случай | Най-лошия случай | Среден случай |
Сортиране на балончета | Многократно сравнява текущия елемент със съседни елементи. В края на всяка итерация най-тежкият елемент се издува на правилното си място. | На) | O (n ^ 2) | O (n ^ 2) |
Сортиране по вмъкване | Вмъква всеки елемент от колекцията на подходящото място. | На) | O (n ^ 2) | O (n ^ 2) |
Сливане на сортиране | Той следва подхода „разделяй и владей“. Разделя колекцията на по-прости подколекции, сортира ги и след това обединява всичко | O (nlogn) | O (nlogn) | O (nlogn) |
Бързо сортиране | Най-ефективна и оптимизирана техника за сортиране. Използва разделяй и владей за сортиране на колекцията. | O (nlogn) | O (n ^ 2) | O (nlogn) |
Сортиране на избора | Намира най-малкия елемент в колекцията и го поставя на правилното му място в края на всяка итерация | O (N ^ 2) | O (N ^ 2) | O (N ^ 2) |
Сортиране на купчина | Елементите се сортират чрез изграждане на минимална купчина или максимална купчина. | O (nlogn) | O (nlogn) | O (nlogn) |
Освен техниките за сортиране, дадени в горната таблица, Java поддържа и следните техники за сортиране:
- Сортиране по кофа
- Сортиране при броене
- Сортиране на черупката
- Гребен Сортиране
Но тези техники се използват умерено в практически приложения, поради което тези техники няма да бъдат част от тази серия.
Нека обсъдим техниката за сортиране на балончета в Java.
Сортиране на балончета в Java
Bubble sort е най-простата от всички техники за сортиране в Java. Тази техника сортира колекцията, като многократно сравнява два съседни елемента и ги разменя, ако не са в желания ред. По този начин, в края на итерацията, най-тежкият елемент се издува, за да изиска своята правилна позиция.
Ако в списък A има n елемента, дадени от A (0), A (1), A (2), A (3), ... .A (n-1), тогава A (0) се сравнява с A (1 ), A (1) се сравнява с A (2) и т.н. След сравнение, ако първият елемент е по-голям от втория, тогава двата елемента се разменят, ако не са в ред.
Алгоритъм за сортиране на балончета
Общият алгоритъм за техника на сортиране на балончета е даден по-долу:
Етап 1: За i = 0 до N-1 повторете стъпка 2
Стъпка 2: За J = i + 1 до N - повтарям
Стъпка 3: ако A (J)> A (i)
Разменете A (J) и A (i)
(Край на Inner for loop)
(End if Outer for loop)
Стъпка 4: Изход
Сега нека демонстрираме техниката за сортиране на балончета, използвайки илюстративен пример.
Вземаме масив с размер 5 и илюстрираме алгоритъма за сортиране на балончета.
Сортиране на масив с помощта на сортиране на балончета
Следващият списък трябва да бъде сортиран.
YouTube към wav конвертор онлайн безплатно
Както можете да видите по-горе, масивът е изцяло сортиран.
Горната илюстрация може да бъде обобщена в таблична форма, както е показано по-долу:
Подайте | Несортиран списък | сравнение | Сортиран списък |
---|---|---|---|
{3,6,11,4,15} | {11.4} | {3,6,4,11,15} | |
1 | {11, 3, 6,15,4} | {11.3} | {3,11,6,15,4} |
{3,11,6,15,4} | {11.6} | {3,6,11,15,4} | |
{3,6,11,15,4} | {11.15} | {3,6,11,15,4} | |
{3,6,11,15,4} | {15.4} | {3,6,11,4,15} | |
две | {3,6,11,4,15} | {3,6} | {3,6,11,4,15} |
{3,6,11,4,15} | {6.11} | {3,6,11,4,15} | |
3 | {3,6,4,11,15} | {3,6} | {3,6,4,11,15} |
{3,6,4,11,15} | {6.4} | {3,4,6,11,15} | |
{3,4,6,11,15} | СОРТИРАН |
Както е показано в горния пример, най-големият елемент мехурче до правилното си положение с всяка итерация / преминаване. Като цяло, когато достигнем N-1 (където N е общ брой елементи в списъка) преминава; ще имаме сортиран целия списък.
Пример за код за сортиране на балончета
Програмата по-долу показва изпълнението на Java на алгоритъма за сортиране на балончета. Тук поддържаме масив от числа и използваме две за цикли, за да преминем през съседни елементи на масива. Ако два съседни елемента не са в ред, те се разменят.
import java.util.*; class Main{ // Driver method to test above public static void main(String args()) { //declare an array of integers int intArray() = {23,43,13,65,11,62,76,83,9,71,84,34,96,80}; //print original array System.out.println('Original array: ' + Arrays.toString(intArray)); int n = intArray.length; //iterate over the array comparing adjacent elements for (int i = 0; i intArray(j+1)) { int temp = intArray(j); intArray(j) = intArray(j+1); intArray(j+1) = temp; } //print the sorted array System.out.println('Sorted array: ' + Arrays.toString(intArray)); } }
Изход:
Оригинален масив: (23, 43, 13, 65, 11, 62, 76, 83, 9, 71, 84, 34, 96, 80)
Сортиран масив: (9, 11, 13, 23, 34, 43, 62, 65, 71, 76, 80, 83, 84, 96)
често задавани въпроси
В # 1) Какви са алгоритмите за сортиране в Java?
Отговор: Алгоритъмът за сортиране може да бъде дефиниран като алгоритъм или процедура, чрез която елементите в колекция могат да бъдат подредени или подредени по желания начин.
По-долу са дадени някои от алгоритмите за сортиране, поддържани в Java:
- Сортиране на балончета
- Сортиране по вмъкване
- Сортиране на селекцията
- Сливане на обединяване
- Quicksort
- Сортиране по Radix
- Хепсорт
Q # 2) Кой е най-добрият алгоритъм за сортиране в Java?
Отговор: Предполага се, че Merge Sort е най-бързият алгоритъм за сортиране в Java. Всъщност Java 7 използва вътрешно сортиране, за да внедри метода Collections.sort (). Бързото сортиране също е друг най-добрият алгоритъм за сортиране.
Q # 3) Какво е Bubble sort в Java?
Отговор: Bubble sort е най-простият алгоритъм в Java. Bubble sort винаги сравнява два съседни елемента в списъка и ги разменя, ако не са в желания ред. По този начин, в края на всяка итерация или преминаване, най-тежкият елемент се издухва до мястото му.
Q # 4) Защо Bubble сортира Nдве?
Отговор: За прилагане на сортиране на балончета използваме две за цикли.
кой е най-добрият mp3 конвертор
Общата извършена работа се измерва чрез:
Количество работа, извършена от вътрешния цикъл * общ брой пъти, в които външният цикъл работи.
За списък с n елемента вътрешният цикъл работи за O (n) за всяка итерация. Външният цикъл работи за O (n) итерация. Следователно общата извършена работа е O (n) * O (n) = O (nдве)
Въпрос # 15) Какви са предимствата на сорта Bubble?
Отговор: Предимствата на Bubble Sort са както следва:
- Лесно за кодиране и разбиране.
- За изпълнението на алгоритъма се изискват малко редове код.
- Сортирането се извършва на място, т.е.не се изисква допълнителна памет и следователно не се налагат допълнителни памет.
- Сортираните данни са незабавно достъпни за обработка.
Заключение
Досега обсъждахме алгоритъма за сортиране на Bubble Sort в Java. Също така изследвахме алгоритъма и подробна илюстрация на сортирането на масив, използвайки Bubble Sort Technique. След това внедрихме програмата Java в Bubble Sort.
В следващия урок ще продължим с другите техники за сортиране в Java.
=> Проверете ВСИЧКИ уроци за Java тук.
Препоръчително четене
- Сортиране на селекция в Java - Алгоритъм за сортиране на селекция и примери
- Сортиране при вмъкване в Java - Алгоритъм за сортиране при вмъкване и примери
- Сортиране на балончета в C ++ с примери
- Как да сортираме масив в Java - Урок с примери
- Урок за дължина на масив Java с примери за кодове
- Метод за сортиране на MongoDB () с примери
- Команда за сортиране на Unix със синтаксис, опции и примери
- Java 'this' Ключова дума: Урок с примери за кодове