logo

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

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

Първата стъпка е да дефинирате функцията за балонно сортиране. Тази функция приема целочислен масив и размера на масива като свои параметри. Функцията не връща нищо, тъй като променя оригиналния масив. Тук е дефиниция на функцията:

настройки на уеб браузъра
 void bubble_sort(int arr[], int n) { int i, j; for (i = 0; i <n - 1; i++) { for (j="0;" j <n i j++) if (arr[j]> arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } </n>

Функцията има два цикъла. Външният цикъл се движи от първия елемент до предпоследния елемент на масива. Вътрешният цикъл преминава от първия елемент до предпоследния елемент на несортираната част от масива. Условието на вътрешния цикъл е n - i - 1, тъй като последните i елементи от масива вече са сортирани.

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

Сега можем да напишем основната функция, за да тестваме нашата реализация на балонно сортиране. Ето основната функция заедно с предишната част:

C програма:

 #include void bubble_sort(int arr[], int n) { int i, j; for (i = 0; i <n - 1; i++) { for (j="0;" j <n i j++) if (arr[j]> arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } int main() { int arr[] = {64, 34, 25, 12, 22, 11, 90}; int n = sizeof(arr) / sizeof(arr[0]); bubble_sort(arr, n); printf(&apos;Sorted array: &apos;); for (int i = 0; i <n; i++) { printf('%d ', arr[i]); } return 0; < pre> <p>The main function creates an integer array arr of size 7 and initializes it with random numbers. We then calculate the size of the array by dividing the size of the array by the size of an integer element. Next, we call the bubble_sort function to sort the array. Finally, we print the sorted array using a for loop.</p> <p> <strong>When we run the program, we should see the following output:</strong> </p> <pre> Sorted array: 11 12 22 25 34 64 90 </pre> <p>This output shows that our bubble sort implementation correctly sorted the array in ascending order.</p> <p>To run the program, we need to compile it using a C compiler. Here is an example <strong>compilation command for GCC:</strong> </p> <pre> gcc -o bubble_sort bubble_sort.c </pre> <p>This command compiles the bubble_sort.c file and produces an executable file named bubble_sort.</p> <p>In summary, the bubble sort algorithm repeatedly swaps adjacent elements until the array is sorted. The algorithm has a time complexity of O(n<sup>2</sup>), which makes it inefficient for large data sets. However, it is useful for educational purposes and small data sets. We implemented the bubble sort algorithm in C programming language and tested it using a simple example.</p> <h3>Characteristics:</h3> <ul> <li>Bubble sort is a simple sorting algorithm.</li> <li>It works by repeatedly swapping adjacent elements if they are in the wrong order.</li> <li>The algorithm sorts the array in ascending or descending order.</li> <li>It has a time complexity of O(n<sup>2</sup>) in the worst case, where n is the size of the array.</li> </ul> <h3>Usage:</h3> <ul> <li>Bubble sort is useful for educational purposes and small data sets.</li> <li>It is not suitable for large data sets because of its time complexity.</li> </ul> <h3>Advantages:</h3> <ul> <li>Bubble sort is easy to understand and implement.</li> <li>It requires minimal additional memory space to perform the sorting.</li> </ul> <h3>Disadvantages:</h3> <ul> <li>It is not efficient for large data sets because of its time complexity.</li> <li>It has poor performance compared to other sorting algorithms, such as quicksort and mergesort.</li> </ul> <h2>Conclusion:</h2> <p>Bubble sort is a simple and intuitive sorting algorithm that is useful for educational purposes and small data sets. However, its time complexity makes it inefficient for large data sets. Therefore, it is not commonly used in real-world applications. Other sorting algorithms, such as quicksort and mergesort, are more efficient for large data sets.</p> <hr></n;></n>

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

За да стартираме програмата, трябва да я компилираме с помощта на C компилатор. Ето един пример команда за компилиране за GCC:

 gcc -o bubble_sort bubble_sort.c 

Тази команда компилира файла bubble_sort.c и създава изпълним файл с име bubble_sort.

В обобщение, алгоритъмът за балонно сортиране многократно разменя съседни елементи, докато масивът бъде сортиран. Алгоритъмът има времева сложност O(n2), което го прави неефективен за големи набори от данни. Въпреки това е полезно за образователни цели и малки набори от данни. Ние внедрихме алгоритъма за балонно сортиране на езика за програмиране C и го тествахме с помощта на прост пример.

знак към int в java

Характеристики:

  • Bubble sort е прост алгоритъм за сортиране.
  • Работи чрез многократна размяна на съседни елементи, ако са в грешен ред.
  • Алгоритъмът сортира масива във възходящ или низходящ ред.
  • Има времева сложност O(n2) в най-лошия случай, където n е размерът на масива.

Употреба:

  • Сортирането с мехурчета е полезно за образователни цели и малки набори от данни.
  • Не е подходящ за големи набори от данни поради сложността на времето.

Предимства:

  • Сортирането с мехурчета е лесно за разбиране и прилагане.
  • Изисква минимално допълнително пространство в паметта за извършване на сортирането.

Недостатъци:

  • Не е ефективен за големи набори от данни поради сложността на времето.
  • Той има слаба производителност в сравнение с други алгоритми за сортиране, като бързо сортиране и сортиране чрез сливане.

Заключение:

Bubble sort е прост и интуитивен алгоритъм за сортиране, който е полезен за образователни цели и малки набори от данни. Времевата му сложност обаче го прави неефективен за големи набори от данни. Поради това не се използва често в приложения от реалния свят. Други алгоритми за сортиране, като бързо сортиране и сортиране чрез сливане, са по-ефективни за големи набори от данни.