Ordinamento delle bolle è un algoritmo di ordinamento semplice e intuitivo. Scambia ripetutamente gli elementi adiacenti se sono nell'ordine sbagliato finché l'array non viene ordinato. In questo algoritmo, l'elemento più grande 'bolle' fino alla fine dell'array in ogni iterazione. L'ordinamento a bolle non è efficiente per set di dati di grandi dimensioni, ma è utile per scopi didattici e set di dati di piccole dimensioni. In questo articolo implementeremo l'algoritmo di bubble sort nel linguaggio di programmazione C.
Il primo passo è definire la funzione bubble sort. Questa funzione accetta come parametri un array di numeri interi e la dimensione dell'array. La funzione non restituisce nulla poiché modifica l'array originale. Ecco il definizione della funzione:
ciclo di vita dello sviluppo del software
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>
La funzione ha due loop. Il ciclo esterno va dal primo elemento al penultimo elemento dell'array. Il ciclo interno va dal primo elemento al penultimo elemento della parte non ordinata dell'array. La condizione del ciclo interno è n - i - 1 perché gli ultimi i elementi dell'array sono già ordinati.
In ogni iterazione del ciclo interno, confrontiamo elementi adiacenti. Se l'elemento di sinistra è maggiore dell'elemento di destra, li invertiamo. Una volta completato il ciclo interno, è garantito che l'elemento più grande si trovi alla fine della parte non ordinata dell'array.
Ora possiamo scrivere la funzione main per testare la nostra implementazione del bubble sort. Ecco la funzione principale insieme alla parte precedente:
Programma 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('Sorted array: '); 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>
Questo output mostra che la nostra implementazione del bubble sort ha ordinato correttamente l'array in ordine crescente.
Per eseguire il programma, dobbiamo compilarlo utilizzando un compilatore C. Ecco un esempio comando di compilazione per GCC:
gcc -o bubble_sort bubble_sort.c
Questo comando compila il file bubble_sort.c e produce un file eseguibile denominato bubble_sort.
In sintesi, l'algoritmo di bubble sort scambia ripetutamente gli elementi adiacenti finché l'array non viene ordinato. L'algoritmo ha una complessità temporale pari a O(n2), il che lo rende inefficiente per set di dati di grandi dimensioni. Tuttavia, è utile per scopi didattici e piccoli set di dati. Abbiamo implementato l'algoritmo di bubble sort nel linguaggio di programmazione C e lo abbiamo testato utilizzando un semplice esempio.
eseguire script in Linux
Caratteristiche:
- Bubble sort è un semplice algoritmo di ordinamento.
- Funziona scambiando ripetutamente gli elementi adiacenti se sono nell'ordine sbagliato.
- L'algoritmo ordina l'array in ordine crescente o decrescente.
- Ha una complessità temporale pari a O(n2) nel caso peggiore, dove n è la dimensione dell'array.
Utilizzo:
- L'ordinamento a bolle è utile per scopi didattici e piccoli set di dati.
- Non è adatto a set di dati di grandi dimensioni a causa della sua complessità temporale.
Vantaggi:
- Il Bubble sort è facile da capire e implementare.
- Richiede uno spazio di memoria aggiuntivo minimo per eseguire l'ordinamento.
Svantaggi:
- Non è efficiente per set di dati di grandi dimensioni a causa della sua complessità temporale.
- Ha prestazioni scarse rispetto ad altri algoritmi di ordinamento, come Quicksort e Mergesort.
Conclusione:
Bubble sort è un algoritmo di ordinamento semplice e intuitivo, utile per scopi didattici e piccoli set di dati. Tuttavia, la sua complessità temporale lo rende inefficiente per set di dati di grandi dimensioni. Pertanto, non è comunemente utilizzato nelle applicazioni del mondo reale. Altri algoritmi di ordinamento, come Quicksort e Mergesort, sono più efficienti per insiemi di dati di grandi dimensioni.