logo

Програм за сортирање мехурића у Ц

Буббле сорт је једноставан и интуитиван алгоритам за сортирање. Он више пута мења суседне елементе ако су у погрешном редоследу док се низ не сортира. У овом алгоритму, највећи елемент 'мехуриће' до краја низа у свакој итерацији. Облачиће сортирање је неефикасно за велике скупове података, али је корисно за образовне сврхе и мале скупове података. У овом чланку ћемо имплементирати алгоритам сортирања мехурића у програмском језику Ц.

Први корак је да дефинишете функцију сортирања мехурића. Ова функција узима низ целих бројева и величину низа као своје параметре. Функција не враћа ништа док мења оригинални низ. Овде је дефиниција функције:

 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>

Функција има две петље. Спољна петља се креће од првог елемента до последњег елемента низа. Унутрашња петља се креће од првог елемента до последњег елемента несортираног дела низа. Услов унутрашње петље је н - и - 1 јер су последњи и елементи низа већ сортирани.

У свакој итерацији унутрашње петље упоређујемо суседне елементе. Ако је леви елемент већи од десног, мењамо их. Након што се унутрашња петља заврши, гарантовано је да ће највећи елемент бити на крају несортираног дела низа.

Сада можемо написати главну функцију да тестирамо нашу имплементацију сортирања мехурића. Ево главне функције заједно са претходним делом:

Ц програм:

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

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

Да бисмо покренули програм, потребно је да га компајлирамо помоћу Ц компајлера. Ево примера компилација за ГЦЦ:

 gcc -o bubble_sort bubble_sort.c 

Ова команда компајлира датотеку буббле_сорт.ц и производи извршну датотеку под називом буббле_сорт.

Укратко, алгоритам сортирања мехурића више пута мења суседне елементе док се низ не сортира. Алгоритам има временску сложеност од О(н2), што га чини неефикасним за велике скупове података. Међутим, корисно је за образовне сврхе и мале скупове података. Алгоритам сортирања мехурића смо имплементирали у програмском језику Ц и тестирали га користећи једноставан пример.

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

  • Буббле сорт је једноставан алгоритам за сортирање.
  • Ради тако што више пута мења суседне елементе ако су у погрешном редоследу.
  • Алгоритам сортира низ у растућем или опадајућем редоследу.
  • Има временску сложеност од О(н2) у најгорем случају, где је н величина низа.

Употреба:

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

Предности:

  • Буббле сортирање је лако разумети и применити.
  • За обављање сортирања потребан је минималан додатни меморијски простор.

Недостаци:

  • Није ефикасан за велике скупове података због своје временске сложености.
  • Има лоше перформансе у поређењу са другим алгоритмима за сортирање, као што су брзо сортирање и сортирање спајањем.

Закључак:

Буббле сорт је једноставан и интуитиван алгоритам за сортирање који је користан за образовне сврхе и мале скупове података. Међутим, његова временска сложеност га чини неефикасним за велике скупове података. Због тога се обично не користи у апликацијама у стварном свету. Други алгоритми за сортирање, као што су брзо сортирање и сортирање спајањем, ефикаснији су за велике скупове података.