Въведение в алгоритъма за сортиране на балончета

Въведение в алгоритъма за сортиране на балончета

Сортирането е една от най -основните операции, които можете да приложите към данните. Можете да сортирате елементи на различни езици за програмиране, като използвате различни алгоритми за сортиране, като Quick Sort, Bubble Sort, Merge Sort, Insertion Sort и др. Bubble Sort е най -простият алгоритъм сред всички тези.





В тази статия ще научите за работата на алгоритъма за сортиране на балончета, псевдокода на алгоритъма за сортиране на мехурчета, сложността му във времето и пространството и неговото прилагане в различни езици за програмиране като C ++, Python, C и JavaScript.





Как работи алгоритъмът за сортиране на балончета?

Сортирането на балончета е най -простият алгоритъм за сортиране, който многократно преминава през списъка, сравнява съседни елементи и ги разменя, ако те са в грешен ред. Тази концепция може да се обясни по -ефективно с помощта на пример. Помислете за несортиран масив със следните елементи: {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

Времева сложност и помощно пространство на алгоритъма за сортиране на балончета

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





критичният процес на windows 10 умря след актуализация

Най-добрата времева сложност на алгоритъма за сортиране на балончета е O (n). Това се случва, когато масивът вече е сортиран.

тапет на windows 10, където са направени снимките

Свързани: Какво е Big-O нотация?

Средната времева сложност на алгоритъма за сортиране на балончета е O (n^2). Това се случва, когато елементите на масива са в смесен ред.

Спомагателното пространство, необходимо за алгоритъма за сортиране на балончета, е O (1).

C ++ Прилагане на алгоритъма за сортиране на балончета

По -долу е C ++ изпълнението на алгоритъма за сортиране на балончета:

// 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 на алгоритъма за сортиране на балончета

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

# 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

Свързани: Как да използвате For Loops в Python

C Прилагане на алгоритъма за сортиране на балончета

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

// 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 внедряване на алгоритъма за сортиране на балончета

По -долу е JavaScript реализацията на алгоритъма за сортиране на балончета:

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

Сега разбирате работата на алгоритъма за сортиране на балончета

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

С помощта на Python можете лесно да внедрите алгоритъма за сортиране на балончета. Ако не сте запознати с Python и искате да започнете пътуването си, започването със скрипт „Hello World“ е чудесен избор.

Дял Дял Туит електронна поща Как да започнете с Python с помощта на скрипт „Hello World“

Python е един от най -популярните езици за програмиране, които се използват днес. Следвайте този урок, за да започнете с първия си скрипт на Python.

Прочетете Напред
Свързани теми
  • Програмиране
  • Java
  • Python
  • Уроци по кодиране
За автора Юврадж Чандра(60 статии са публикувани)

Юврадж е студент по компютърни науки в Университета в Делхи, Индия. Той е страстен за Full Stack Web Development. Когато не пише, изследва дълбочината на различните технологии.

rpc сървърът е недостъпен за windows 10
Още от Yuvraj Chandra

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!

Щракнете тук, за да се абонирате