Hoe invoegsortering in C met voorbeeld te implementeren

Hoe Invoegsortering In C Met Voorbeeld Te Implementeren



Het sorteeralgoritme dat bekend staat als 'Insertion Sort' is eenvoudig en effectief voor kleine datasets. Het is een op vergelijking gebaseerde methode die de elementen rangschikt door een array te doorlopen, elk element te evalueren ten opzichte van de voorgaande elementen en ze indien nodig uit te wisselen. In dit bericht zullen we een voorbeeld bespreken van hoe de invoegsortering in C-taal kan worden geïmplementeerd.

Wat is invoegsortering in C?

De sorteermethode genaamd invoegsortering komt overeen met elk afzonderlijk element met aangrenzende elementen terwijl het door een array wordt herhaald. Een kleiner element dan het element voordat het op de juiste locatie in de gesorteerde subarray wordt ingevoegd.

Om dit verder te illustreren, heb ik een voorbeeld gedemonstreerd waarin ik een array van vier elementen in een array zoals arr[]= {5, 4, 60, 9} en we willen dit element in oplopende volgorde sorteren met behulp van invoegsortering. De volgende interacties verklaren de volledige droge run van invoegsortering:







Iteratie 1

5 4 60 9

We hebben nu een array als arr[5, 4, 60, 9], in de eerste iteratie van invoegsortering vergelijken we eerst de eerste twee elementen zoals 5 en 4, aangezien arr[5] > arr[4] is, dus we wisselen ze om om de array in oplopende volgorde te sorteren. Nu wordt de array:



4 5 60 9

Iteratie 2

4 5 60 9

In de tweede iteratie vergelijken we de volgende twee elementen, zoals arr[5] met arr[60].



Omdat de arr[5] < arr[60] dus omwisselen niet gebeurt omdat het al in oplopende volgorde is gesorteerd. Nu wordt de array:





4 5 60 9

Iteratie 3

4 5 60 9

Net als in de derde iteratie matchen we de derde en vierde elementen zoals arr[60] met arr[9].

Nu zien we dat arr[60] > arr[9] dus verwisselen plaatsvindt, dan zal de array in oplopende volgorde sorteren.



4 5 9 60

Dit is hoe invoegsortering werkt in C, waardoor een array-element eenvoudig in oplopende of aflopende volgorde wordt gesorteerd.

Stroomschema van invoegsortering

Hieronder volgt het stroomschema van het algoritme van invoegsortering:

Implementatievoorbeeld van invoegsortering in C

We hebben eerst een verzameling elementen nodig die in aflopende en oplopende volgorde moeten worden gesorteerd om de invoegsorteermethode in C te bouwen. Neem voor de doeleinden van dit voorbeeld aan dat we te maken hebben met een reeks getallen {5, 4, 60, 9} :

#include

leegte insertionsort_ascending ( int arr1 [ ] , int N ) {

int i , J , mijn sleutel ;

//for lus wordt gebruikt om de i-waarden van 1 tot i

voor ( i = 1 ; i < N ; i ++ ) {

mijn sleutel = arr1 [ i ] ;

J = i - 1 ;

terwijl ( J >= 0 && arr1 [ J ] > mijn sleutel ) {

arr1 [ J + 1 ] = arr1 [ J ] ;

J = J - 1 ;

}

arr1 [ J + 1 ] = mijn sleutel ;

}

}

leegte insertionsort_descending ( int arr2 [ ] , int M ) {

int i , J , mijn sleutel ;

// er wordt nog een for-lus gemaakt om de i-waarden van 1 tot i

voor ( i = 1 ; i < M ; i ++ ) {

mijn sleutel = arr2 [ i ] ;

J = i - 1 ;

terwijl ( J >= 0 && arr2 [ J ] < mijn sleutel ) {

arr2 [ J + 1 ] = arr2 [ J ] ;

J = J - 1 ;

}

arr2 [ J + 1 ] = mijn sleutel ;

}

}

int voornaamst ( ) {

//Insertion-Sort met aflopende volgorde

int mijn_arr [ ] = { 5 , 4 , 60 , 9 } ; // initialiseer een my_arr [] met vier waarden

int M = De grootte van ( mijn_arr ) / De grootte van ( mijn_arr [ 0 ] ) ;

insertionsort_descending ( mijn_arr , M ) ;

printf ( 'Gesorteerde array in aflopende volgorde: ' ) ;

voor ( int i = 0 ; i < M ; i ++ )

printf ( '%D ' , mijn_arr [ i ] ) ;

printf ( ' \N ' ) ;

//Insertion-Sorteren in oplopende volgorde

int N = De grootte van ( mijn_arr ) / De grootte van ( mijn_arr [ 0 ] ) ;

insertionsort_ascending ( arr2 , N ) ;

printf ( 'Gesorteerde array in oplopende volgorde: ' ) ;

voor ( int i = 0 ; i < N ; i ++ )

printf ( '%D ' , mijn_arr [ i ] ) ;

printf ( ' \N ' ) ;

opbrengst 0 ;

}

In deze code twee methoden insertionsort_descending() , En insertionsort_ascending() neem de matrixwaarden van mijn_arr[] . De code gebruikt dan een for loop om door de elementen van de array te itereren.

We noemen beide functies in de hoofdfunctie zodra ze de arrays in aflopende en oplopende volgorde hebben gesorteerd. Daarna worden de for-lussen gebruikt om de gesorteerde array af te drukken.

Wanneer we dit programma uitvoeren, wordt de verwachte uitvoer hieronder geplaatst:

Conclusie

De invoegsortering is een snelle en gemakkelijke manier om een ​​array in aflopende of oplopende volgorde te sorteren. Voor kleine datasets presteert deze sorteertechniek goed. Zoals u in de bovenstaande gids kunt zien, is het eenvoudig om een ​​voorbeeld van een C-programma te implementeren om invoegsortering gemakkelijk te begrijpen, zowel in aflopende als in oplopende volgorde.