Kā ar piemēru ieviest ievietošanas kārtošanu C valodā

Ka Ar Piemeru Ieviest Ievietosanas Kartosanu C Valoda



Kārtošanas algoritms, kas pazīstams kā “Ievietošanas kārtošana”, ir vienkāršs un efektīvs nelielām datu kopām. Tā ir uz salīdzināšanu balstīta metode, kas sakārto elementus, izejot cauri masīvam, novērtējot katru elementu salīdzinājumā ar tiem, kas bija pirms tā, un, ja nepieciešams, apmainoties ar tiem. Šajā ziņojumā mēs apskatīsim piemēru, kā ieviest ievietošanas kārtošanu C valodā.

Kas ir ievietošanas kārtošana valodā C?

Šķirošanas metode, ko sauc par ievietošanas kārtošanu, saskaņo katru atsevišķu elementu ar blakus esošajiem elementiem, kad tas atkārtojas masīvā. Sakārtotajā apakšgrupā atbilstošā vietā tiek ievietots mazāks elements nekā pirms tam.

Lai vēl vairāk ilustrētu, esmu parādījis piemēru, kurā esmu aplūkojis četru elementu masīvu masīvā, piemēram, arr[]= {5, 4, 60, 9} un mēs vēlamies kārtot šo elementu augošā secībā, izmantojot ievietošanas kārtošanu. Šādas mijiedarbības izskaidro ievietošanas kārtošanas pilnīgu sauso darbību:







1. atkārtojums

5 4 60 9

Tagad mums ir masīvs arr[5, 4, 60, 9], pirmajā ievietošanas kārtošanas iterācijā mēs vispirms salīdzinām pirmos divus elementus, piemēram, 5 un 4. Tā kā arr[5] ir > arr[4] mēs tos apmainām, lai sakārtotu masīvu augošā secībā. Tagad masīvs būs šāds:



4 5 60 9

2. atkārtojums

4 5 60 9

Otrajā iterācijā mēs salīdzinām nākamos divus elementus, piemēram, arr[5] ar arr[60].



Tā kā arr[5] < arr[60], apmaiņa nenotiek, jo tā jau ir sakārtota augošā secībā. Tagad masīvs kļūst:





4 5 60 9

3. atkārtojums

4 5 60 9

Tāpat kā trešajā iterācijā, mēs saskaņojam trešo un ceturto elementu, piemēram, arr[60] ar arr[9].

Tagad mēs redzam, ka arr[60] > arr[9], tādējādi notiek mijmaiņa, tad masīvs tiks sakārtots augošā secībā.



4 5 9 60

Šādi darbojas ievietošanas kārtošana programmā C, kas viegli sakārto masīva elementu augošā vai dilstošā secībā.

Ievietošanas kārtošanas blokshēma

Tālāk ir parādīta ievietošanas kārtošanas algoritma blokshēma:

Ievietošanas kārtošanas īstenošanas piemērs C

Vispirms mums ir nepieciešama elementu kolekcija, kas ir jākārto dilstošā un augošā secībā, lai izveidotu ievietošanas kārtošanas metodi valodā C. Pieņemsim, ka šī piemēra vajadzībām mums ir darīšana ar skaitļu masīvu {5, 4, 60, 9} :

#include

nederīgs insertionsort_ascending ( starpt arr1 [ ] , starpt n ) {

starpt i , j , my_key ;

//for cilpa tiek izmantota, lai atkārtotu i vērtības no 1 līdz i

priekš ( i = 1 ; i < n ; i ++ ) {

my_key = arr1 [ i ] ;

j = i - 1 ;

kamēr ( j >= 0 && arr1 [ j ] > my_key ) {

arr1 [ j + 1 ] = arr1 [ j ] ;

j = j - 1 ;

}

arr1 [ j + 1 ] = my_key ;

}

}

nederīgs insertionsort_descending ( starpt arr2 [ ] , starpt m ) {

starpt i , j , my_key ;

//tiek izveidota cita cilpa, lai atkārtotu i vērtības no 1 līdz i

priekš ( i = 1 ; i < m ; i ++ ) {

my_key = arr2 [ i ] ;

j = i - 1 ;

kamēr ( j >= 0 && arr2 [ j ] < my_key ) {

arr2 [ j + 1 ] = arr2 [ j ] ;

j = j - 1 ;

}

arr2 [ j + 1 ] = my_key ;

}

}

starpt galvenais ( ) {

//Ievietošana-Kārtot dilstošā secībā

starpt mans_arr [ ] = { 5 , 4 , 60 , 9 } ; //inicializējiet my_arr[] ar četrām vērtībām

starpt m = izmērs ( mans_arr ) / izmērs ( mans_arr [ 0 ] ) ;

insertionsort_descending ( mans_arr , m ) ;

printf ( 'Kārtots masīvs dilstošā secībā:' ) ;

priekš ( starpt i = 0 ; i < m ; i ++ )

printf ( '%d' , my_arr [ i ] ) ;

printf ( ' \n ' ) ;

//Ievietošana-Kārtot augošā secībā

starpt n = izmērs ( my_arr ) / izmērs ( my_arr [ 0 ] ) ;

insertionsort_ascending ( arr2 , n ) ;

printf ( 'Kārtots masīvs augošā secībā:' ) ;

priekš ( starpt i = 0 ; i < n ; i ++ )

printf ( '%d' , mans_arr [ i ] ) ;

printf ( ' \n ' ) ;

atgriezties 0 ;

}

Šajā kodā divas metodes insertionsort_descending() , un insertionsort_ascending() ņem masīva vērtības mans_arr[] . Pēc tam kods izmanto a cilpai lai atkārtotu masīva elementus.

Mēs izsaucam abas funkcijas galvenajā funkcijā, kad tās ir sakārtojušas masīvus dilstošā un augošā secībā. Pēc tam cilpas for tiek izmantotas, lai drukātu sakārtoto masīvu.

Kad mēs palaižam šo programmu, paredzamā izvade tiek ievietota zemāk:

Secinājums

Ievietošanas kārtošana ir ātrs un vienkāršs veids, kā kārtot masīvu dilstošā vai augošā secībā. Mazām datu kopām šī šķirošanas tehnika darbojas labi. Kā redzat iepriekš sniegtajā rokasgrāmatā, ir vienkārši ieviest C programmas piemēru, lai viegli saprastu ievietošanas kārtošanu dilstošā, kā arī augošā secībā.