logo

C programma, lai kārtotu masīvu augošā secībā

Masīva kārtošana augošā secībā nozīmē elementu sakārtošanu no mazākā elementa uz lielāko elementu. Šajā rakstā mēs iemācīsimies kārtot masīvu augošā secībā programmēšanas valodā C.

šķirošana C

Ir daudzi veidi, kā masīvu var kārtot augošā secībā. Vienkāršības labad šajā rakstā izmantosim atlases kārtošanu.



Algoritms

Atlases kārtošana ir vienkāršs kārtošanas algoritms, kas atkārtoti atrod minimālo elementu no nešķirotās masīva daļas un novieto to masīva sakārtotās daļas sākumā, līdz tiek sakārtots viss masīvs.

  1. Masīvu var sakārtot augošā secībā, atkārtoti atrodot minimālo elementu (ņemot vērā augošo secību) no nešķirotās daļas un ievietojot to sākumā.
  2. Algoritms noteiktā masīvā uztur divus apakšmasīvus.
    • Apakšbloks, kas jau ir sakārtots.
    • Atlikušais apakšgrupa, kas nav šķirota.
  3. Katrā atlases kārtošanas iterācijā tiek atlasīts minimālais elements (ņemot vērā augošo secību) no nešķirotā apakšgrupas un pārvietots uz sakārtoto apakšgrupu.

Skatiet pilnu rakstu par Atlase Kārtot sīkākai informācijai!

Masīvu šķirošanas programma 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; }>

>

>

Izvade

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

Sarežģītības analīze

    Laika sarežģītība: O(N2) palīgtelpa: O(1)

Saistītie raksti