logo

Program sortiranja mjehurića u C-u

Razvrstavanje mjehurića je jednostavan i intuitivan algoritam sortiranja. Više puta mijenja susjedne elemente ako su u pogrešnom redoslijedu dok se niz ne sortira. U ovom algoritmu, najveći element 'dolazi' do kraja niza u svakoj iteraciji. Sortiranje u obliku mjehurića je neučinkovito za velike skupove podataka, ali je korisno za obrazovne svrhe i male skupove podataka. U ovom ćemo članku implementirati algoritam bubble sortiranja u C programskom jeziku.

Prvi korak je definiranje funkcije sortiranja u obliku mjehurića. Ova funkcija uzima niz cijelih brojeva i veličinu niza kao svoje parametre. Funkcija ne vraća ništa jer mijenja izvorni niz. Ovdje je definicija funkcije:

 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 ima dvije petlje. Vanjska petlja ide od prvog elementa do pretposljednjeg elementa niza. Unutarnja petlja kreće se od prvog elementa do pretposljednjeg elementa nesortiranog dijela niza. Uvjet unutarnje petlje je n - i - 1 jer je zadnjih i elemenata niza već sortirano.

U svakoj iteraciji unutarnje petlje uspoređujemo susjedne elemente. Ako je lijevi element veći od desnog, mijenjamo ih. Nakon završetka unutarnje petlje, najveći element je zajamčeno na kraju nesortiranog dijela niza.

Sada možemo napisati glavnu funkciju za testiranje naše implementacije sortiranja u obliku mjehurića. Evo glavne funkcije zajedno s prethodnim dijelom:

C program:

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

Ovaj rezultat pokazuje da je naša implementacija sortiranja u obliku mjehurića ispravno sortirala niz uzlaznim redoslijedom.

Da bismo pokrenuli program, moramo ga prevesti pomoću C kompajlera. Evo primjera naredba kompilacije za GCC:

 gcc -o bubble_sort bubble_sort.c 

Ova naredba kompilira datoteku bubble_sort.c i proizvodi izvršnu datoteku pod nazivom bubble_sort.

Ukratko, algoritam mjehurićastog sortiranja više puta mijenja susjedne elemente dok se niz ne sortira. Algoritam ima vremensku složenost O(n2), što ga čini neučinkovitim za velike skupove podataka. Međutim, koristan je za obrazovne svrhe i male skupove podataka. Implementirali smo algoritam bubble sort u programskom jeziku C i testirali ga na jednostavnom primjeru.

Karakteristike:

  • Bubble sort je jednostavan algoritam sortiranja.
  • Djeluje tako da opetovano mijenja susjedne elemente ako su u pogrešnom redoslijedu.
  • Algoritam razvrstava niz uzlaznim ili silaznim redoslijedom.
  • Ima vremensku složenost O(n2) u najgorem slučaju, gdje je n veličina niza.

Upotreba:

  • Bubble sortiranje je korisno za obrazovne svrhe i male skupove podataka.
  • Nije prikladan za velike skupove podataka zbog svoje vremenske složenosti.

Prednosti:

  • Bubble sortiranje je lako razumjeti i implementirati.
  • Za obavljanje sortiranja potreban je minimalan dodatni memorijski prostor.

Nedostaci:

  • Nije učinkovit za velike skupove podataka zbog svoje vremenske složenosti.
  • Ima lošu izvedbu u usporedbi s drugim algoritmima sortiranja, kao što su brzo sortiranje i sortiranje spajanjem.

Zaključak:

Bubble sort je jednostavan i intuitivan algoritam za sortiranje koji je koristan za obrazovne svrhe i male skupove podataka. Međutim, njegova vremenska složenost čini ga neučinkovitim za velike skupove podataka. Stoga se često ne koristi u stvarnim aplikacijama. Drugi algoritmi sortiranja, kao što su brzo sortiranje i sortiranje spajanjem, učinkovitiji su za velike skupove podataka.