Увод у алгоритам сортирања мехурића

Увод у алгоритам сортирања мехурића

Сортирање је једна од најосновнијих операција које можете применити на податке. Елементе можете сортирати у различитим програмским језицима помоћу различитих алгоритама за сортирање, као што су Куицк Сорт, Буббле Сорт, Мерге Сорт, Инсертион Сорт, итд. Буббле Сорт је најједноставнији алгоритам од свих ових.





У овом чланку ћете сазнати о раду алгоритма Буббле Сорт, псеудокоду Буббле Сорт алгоритма, његовој временској и просторној сложености и његовој имплементацији у различитим програмским језицима као што су Ц ++, Питхон, Ц и ЈаваСцрипт.





Како функционише алгоритам сортирања мехурића?

Буббле Сорт је најједноставнији алгоритам за сортирање који непрестано корача кроз листу, упоређује суседне елементе и мења их ако су у погрешном редоследу. Овај концепт се може ефикасније објаснити уз помоћ примера. Узмимо у обзир неразврстани низ са следећим елементима: {16, 12, 15, 13, 19}.





Пример:

Овде се пореде суседни елементи и ако нису у растућем редоследу, замењују се.



Псеудокод алгоритма за сортирање мехурића

У псеудокоду алгоритам сортирања мехурића може бити изражен као:

bubbleSort(Arr[], size)
// loop to access each array element
for i=0 to size-1 do:
// loop to compare array elements
for j=0 to size-i-1 do:
// compare the adjacent elements
if Arr[j] > Arr[j+1] then
// swap them
swap(Arr[j], Arr[j+1])
end if
end for
end for
end

Горњи алгоритам обрађује сва поређења чак и ако је низ већ сортиран. Може се додатно оптимизовати заустављањем алгоритма ако унутрашња петља није изазвала замену. Ово ће смањити време извршавања алгоритма.





Тако се псеудокод оптимизованог алгоритма сортирања мехура може изразити као:

bubbleSort(Arr[], size)
// loop to access each array element
for i=0 to size-1 do:
// check if swapping occurs
swapped = false
// loop to compare array elements
for j=0 to size-i-1 do:
// compare the adjacent elements
if Arr[j] > Arr[j+1] then
// swap them
swap(Arr[j], Arr[j+1])
swapped = true
end if
end for
// if no elements were swapped that means the array is sorted now, then break the loop.
if(not swapped) then
break
end if
end for
end

Временска сложеност и помоћни простор алгоритма за сортирање мехурића

Најгора временска сложеност алгоритма сортирања мехурића је О (н^2). Јавља се када је низ у опадајућем редоследу и желите да га сортирате по растућем или обрнуто.





како присилно искључити МацБоок Аир

Сложеност у најбољем случају алгоритма сортирања мехурића је О (н). Јавља се када је низ већ сортиран.

како створити диск за покретање

Повезан: Шта је Биг-О нотација?

Просечна сложеност алгоритма сортирања облачића је О (н^2). Јавља се када су елементи низа у измешаном редоследу.

Помоћни простор потребан за алгоритам сортирања мехурића је О (1).

Ц ++ Имплементација алгоритма за сортирање облачића

Испод је Ц ++ имплементација Буббле Сорт алгоритма:

// C++ implementation of the
// optimised Bubble Sort algorithm
#include
using namespace std;
// Function to perform Bubble Sort
void bubbleSort(int arr[], int size) {
// Loop to access each element of the array
for (int i=0; i<(size-1); i++) {
// Variable to check if swapping occurs
bool swapped = false;
// loop to compare two adjacent elements of the array
for (int j = 0; j <(size-i-1); j++) {
// Comparing two adjacent array elements
if (arr[j] > arr[j + 1]) {
// Swap both elements if they're
// not in correct order
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
swapped = true;
}
}
// If no elements were swapped that means the array is sorted now,
// then break the loop.
if (swapped == false) {
break;
}
}
}
// Prints the elements of the array
void printArray(int arr[], int size) {
for (int i = 0; i cout << arr[i] << ' ';
}
cout << endl;
}
int main() {
int arr[] = {16, 12, 15, 13, 19};
// Finding the length of the array
int size = sizeof(arr) / sizeof(arr[0]);
// Printing the given unsorted array
cout << 'Unsorted Array: ' << endl;
printArray(arr, size);
// Calling bubbleSort() function
bubbleSort(arr, size);
// Printing the sorted array
cout << 'Sorted Array in Ascending Order:' << endl;
printArray(arr, size);
return 0;
}

Излаз:

Unsorted Array:
16 12 15 13 19
Sorted Array in Ascending Order:
12 13 15 16 19

Питхон имплементација алгоритма сортирања мехурића

Испод је Питхон имплементација алгоритма Буббле Сорт:

# Python implementation of the
# optimised Bubble Sort algorithm

# Function to perform Bubble Sort
def bubbleSort(arr, size):
# Loop to access each element of the list
for i in range (size-1):
# Variable to check if swapping occurs
swapped = False
# loop to compare two adjacent elements of the list
for j in range(size-i-1):
# Comparing two adjacent list elements
if arr[j] > arr[j+1]:
temp = arr[j]
arr[j] = arr[j+1]
arr[j+1] = temp
swapped = True
# If no elements were swapped that means the list is sorted now,
# then break the loop.
if swapped == False:
break
# Prints the elements of the list
def printArray(arr):
for element in arr:
print(element, end=' ')
print('')

arr = [16, 12, 15, 13, 19]
# Finding the length of the list
size = len(arr)
# Printing the given unsorted list
print('Unsorted List:')
printArray(arr)
# Calling bubbleSort() function
bubbleSort(arr, size)
# Printing the sorted list
print('Sorted List in Ascending Order:')
printArray(arr)

Излаз:

Unsorted List:
16 12 15 13 19
Sorted List in Ascending Order:
12 13 15 16 19

Повезан: Како се користи Фор Лоопс у Питхону

Ц Имплементација алгоритма за сортирање мехурића

Испод је Ц имплементација Буббле Сорт алгоритма:

// C implementation of the
// optimised Bubble Sort algorithm
#include
#include
// Function to perform Bubble Sort
void bubbleSort(int arr[], int size) {
// Loop to access each element of the array
for (int i=0; i<(size-1); i++) {
// Variable to check if swapping occurs
bool swapped = false;
// loop to compare two adjacent elements of the array
for (int j = 0; j <(size-i-1); j++) {
// Comparing two adjacent array elements
if (arr[j] > arr[j + 1]) {
// Swap both elements if they're
// not in correct order
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
swapped = true;
}
}
// If no elements were swapped that means the array is sorted now,
// then break the loop.
if (swapped == false) {
break;
}
}
}
// Prints the elements of the array
void printArray(int arr[], int size) {
for (int i = 0; i printf('%d ', arr[i]);
}
printf(' ⁠n ');
}
int main() {
int arr[] = {16, 12, 15, 13, 19};
// Finding the length of the array
int size = sizeof(arr) / sizeof(arr[0]);
// Printing the given unsorted array
printf('Unsorted Array: ⁠n');
printArray(arr, size);
// Calling bubbleSort() function
bubbleSort(arr, size);
// Printing the sorted array
printf('Sorted Array in Ascending Order: ⁠n');
printArray(arr, size);
return 0;
}

Излаз:

Unsorted Array:
16 12 15 13 19
Sorted Array in Ascending Order:
12 13 15 16 19

ЈаваСцрипт имплементација алгоритма за сортирање облачића

Испод је ЈаваСцрипт имплементација Буббле Сорт алгоритма:

// JavaScript implementation of the
// optimised Bubble Sort algorithm
// Function to perform Bubble Sort
function bubbleSort(arr, size) {
// Loop to access each element of the array
for(let i=0; i // Variable to check if swapping occurs
var swapped = false;
// loop to compare two adjacent elements of the array
for(let j=0; j // Comparing two adjacent array elements
if(arr[j] > arr[j+1]) {
// Swap both elements if they're
// not in correct order
let temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
swapped = true;
}
// If no elements were swapped that means the array is sorted now,
// then break the loop.
if (swapped == false) {
break;
}
}
}
}
// Prints the elements of the array
function printArray(arr, size) {
for (let i=0; i document.write(arr[i] + ' ');
}
document.write('
')
}

var arr = [16, 12, 15, 13, 19];
// Finding the length of the array
var size = arr.length;
// Printing the given unsorted array
document.write('Unsorted Array:
');
printArray(arr, size);
// Calling bubbleSort() function
bubbleSort(arr, size);
// Printing the sorted array
document.write('Sorted Array in Ascending Order:
');
printArray(arr, size);

Излаз:

Unsorted Array:
16 12 15 13 19
Sorted Array in Ascending Order:
12 15 13 16 19

Сада разумете рад алгоритма за сортирање мехурића

Сортирање мехурићима је најједноставнији алгоритам сортирања и углавном се користи за разумевање основа сортирања. Сортирање мехурићима се такође може применити рекурзивно, али не пружа додатне предности за то.

Помоћу Питхона можете с лакоћом имплементирати алгоритам сортирања мехурића. Ако нисте упознати са Питхоном и желите започети своје путовање, почетак са „Хелло Ворлд“ скриптом је одличан избор.

Објави Објави Твеет Емаил Како започети са Питхон -ом користећи скрипту 'Хелло Ворлд'

Питхон је један од најпопуларнијих програмских језика који се данас користи. Пратите овај водич да бисте започели са својом првом Питхон скриптом.

Прочитајте следеће
Повезане теме
  • Програмирање
  • Јава
  • Питхон
  • Кодирање Туториали
О аутору Иуврај Цхандра(Објављено 60 чланака)

Иуврај је студент основних студија рачунарства на Универзитету у Делхију у Индији. Он је страствен за Фулл Стацк Веб Девелопмент. Кад не пише, истражује дубину различитих технологија.

како блокирати некога на ВхатсАпп -у
Још од Иуврај Цхандра

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, критике, бесплатне е -књиге и ексклузивне понуде!

Кликните овде да бисте се претплатили