logo

Burbulų rūšiavimo programa C

Burbulų rūšiavimas yra paprastas ir intuityvus rūšiavimo algoritmas. Jis pakartotinai keičia gretimus elementus, jei jie yra neteisinga tvarka, kol masyvas bus surūšiuotas. Pagal šį algoritmą didžiausias elementas „burbuliuoja“ iki masyvo pabaigos kiekvienoje iteracijoje. Burbulų rūšiavimas yra neefektyvus dideliems duomenų rinkiniams, bet naudingas švietimo tikslais ir mažiems duomenų rinkiniams. Šiame straipsnyje mes įdiegsime burbulų rūšiavimo algoritmą C programavimo kalba.

Pirmasis žingsnis yra apibrėžti burbulų rūšiavimo funkciją. Ši funkcija kaip parametrus paima sveikųjų skaičių masyvą ir masyvo dydį. Funkcija nieko nepateikia, nes pakeičia pradinį masyvą. Čia yra funkcijos apibrėžimas:

 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>

Funkcija turi dvi kilpas. Išorinė kilpa eina nuo pirmojo elemento iki antrojo paskutinio masyvo elemento. Vidinė kilpa eina nuo pirmojo elemento iki antrojo paskutinio nerūšiuotos masyvo dalies elemento. Vidinio ciklo sąlyga yra n - i - 1, nes paskutiniai i masyvo elementai jau yra surūšiuoti.

Kiekvienoje vidinės kilpos iteracijoje lyginame gretimus elementus. Jei kairysis elementas yra didesnis už dešinįjį, mes juos sukeičiame. Pasibaigus vidinei kilpai, didžiausias elementas garantuojamas nerūšiuotos masyvo dalies pabaigoje.

Dabar galime parašyti pagrindinę funkciją, kad išbandytume burbulų rūšiavimo įgyvendinimą. Čia yra pagrindinė funkcija kartu su ankstesne dalimi:

C programa:

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

Ši išvestis rodo, kad mūsų burbulų rūšiavimo įgyvendinimas teisingai surūšiavo masyvą didėjančia tvarka.

Norėdami paleisti programą, turime ją sukompiliuoti naudodami C kompiliatorių. Štai pavyzdys GCC kompiliavimo komanda:

 gcc -o bubble_sort bubble_sort.c 

Ši komanda sukompiliuoja bubble_sort.c failą ir sukuria vykdomąjį failą pavadinimu bubble_sort.

Apibendrinant galima pasakyti, kad burbulų rūšiavimo algoritmas pakartotinai keičia gretimus elementus, kol masyvas bus surūšiuotas. Algoritmo laiko sudėtingumas yra O(n2), todėl jis neveiksmingas dideliems duomenų rinkiniams. Tačiau tai naudinga švietimo tikslais ir mažiems duomenų rinkiniams. Mes įdiegėme burbulų rūšiavimo algoritmą C programavimo kalba ir išbandėme jį naudodami paprastą pavyzdį.

Charakteristikos:

  • Burbulų rūšiavimas yra paprastas rūšiavimo algoritmas.
  • Jis veikia pakartotinai keičiant gretimus elementus, jei jie yra neteisinga tvarka.
  • Algoritmas rūšiuoja masyvą didėjančia arba mažėjančia tvarka.
  • Jo laiko sudėtingumas yra O (n2) blogiausiu atveju, kur n yra masyvo dydis.

Naudojimas:

  • Burbulų rūšiavimas yra naudingas švietimo tikslais ir mažiems duomenų rinkiniams.
  • Dėl laiko sudėtingumo jis netinka dideliems duomenų rinkiniams.

Privalumai:

  • Burbulų rūšiavimą lengva suprasti ir įgyvendinti.
  • Norint atlikti rūšiavimą, reikia minimalios papildomos atminties vietos.

Trūkumai:

  • Jis nėra efektyvus dideliems duomenų rinkiniams dėl laiko sudėtingumo.
  • Jo našumas prastas, palyginti su kitais rūšiavimo algoritmais, tokiais kaip greitasis rūšiavimas ir sujungimas.

Išvada:

Burbulų rūšiavimas yra paprastas ir intuityvus rūšiavimo algoritmas, naudingas švietimo tikslais ir mažiems duomenų rinkiniams. Tačiau dėl laiko sudėtingumo jis neveiksmingas dideliems duomenų rinkiniams. Todėl jis nėra dažnai naudojamas realaus pasaulio programose. Kiti rūšiavimo algoritmai, tokie kaip greitasis rūšiavimas ir sujungimas, yra efektyvesni dideliems duomenų rinkiniams.