logo

Programma C per ordinare un array in ordine crescente

Ordinare un array in ordine crescente significa disporre gli elementi dall'elemento più piccolo all'elemento più grande. In questo articolo impareremo a ordinare un array in ordine crescente nel linguaggio di programmazione C.

ordinamento in C

Esistono molti modi in cui l'array può essere ordinato in ordine crescente. Per semplicità utilizzeremo l'ordinamento per selezione in questo articolo.



Algoritmo

L'ordinamento per selezione è un semplice algoritmo di ordinamento che trova ripetutamente l'elemento minimo dalla parte non ordinata dell'array e lo posiziona all'inizio della parte ordinata dell'array finché non viene ordinato l'array completo.

  1. L'array può essere ordinato in ordine crescente trovando ripetutamente l'elemento minimo (considerando l'ordine crescente) dalla parte non ordinata e mettendolo all'inizio.
  2. L'algoritmo mantiene due sottoarray in un dato array.
    • Il sottoarray già ordinato.
    • Sottoarray rimanente che non è ordinato.
  3. In ogni iterazione dell'ordinamento di selezione, l'elemento minimo (considerando l'ordine crescente) dal sottoarray non ordinato viene selezionato e spostato nel sottoarray ordinato.

Fare riferimento all'articolo completo su Ordinamento selezione per ulteriori dettagli!

Programma di ordinamento di array in C

C








// C program to sort the array in an> // ascending order using selection sort> #include> > void> swap(>int>* xp,>int>* yp)> {> >int> temp = *xp;> >*xp = *yp;> >*yp = temp;> }> > // Function to perform Selection Sort> void> selectionSort(>int> arr[],>int> n)> {> >int> i, j, min_idx;> > >// One by one move boundary of> >// unsorted subarray> >for> (i = 0; i // Find the minimum element in // unsorted array min_idx = i; for (j = i + 1; j if (arr[j] min_idx = j; // Swap the found minimum element // with the first element swap(&arr[min_idx], &arr[i]); } } // Function to print an array void printArray(int arr[], int size) { int i; for (i = 0; i printf('%d ', arr[i]); printf(' '); } // Driver code int main() { int arr[] = { 0, 23, 14, 12, 9 }; int n = sizeof(arr) / sizeof(arr[0]); printf('Original array: '); printArray(arr, n); selectionSort(arr, n); printf(' Sorted array in Ascending order: '); printArray(arr, n); return 0; }>

>

>

Produzione

Original array: 0 23 14 12 9 Sorted array in Ascending order: 0 9 12 14 23>

Analisi della complessità

    Complessità temporale: O(N2) Spazio ausiliario: O(1)

articoli Correlati