So implementieren Sie die Einfügungssortierung in C anhand eines Beispiels

So Implementieren Sie Die Einfugungssortierung In C Anhand Eines Beispiels



Der als „Insertion Sort“ bekannte Sortieralgorithmus ist unkompliziert und effektiv für kleine Datensätze. Es handelt sich um eine vergleichsbasierte Methode, die die Elemente anordnet, indem sie ein Array durchläuft, jedes Element anhand der davor liegenden Elemente bewertet und diese bei Bedarf austauscht. In diesem Beitrag gehen wir ein Beispiel für die Implementierung der Einfügungssortierung in der Sprache C durch.

Was ist Einfügungssortierung in C?

Die als Einfügungssortierung bezeichnete Sortiermethode gleicht jedes einzelne Element mit benachbarten Elementen ab, während es über ein Array iteriert. Ein kleineres Element als das davor, wird an der entsprechenden Stelle in das sortierte Subarray eingefügt.

Zur weiteren Veranschaulichung habe ich ein Beispiel gezeigt, in dem ich ein Array aus vier Elementen in einem Array wie z. B. betrachtet habe arr[]= {5, 4, 60, 9} und wir möchten dieses Element mithilfe der Einfügungssortierung in aufsteigender Reihenfolge sortieren. Die folgenden Wechselwirkungen erklären den vollständigen Probelauf der Einfügesortierung:







Iteration 1

5 4 60 9

Wir haben jetzt ein Array als arr[5, 4, 60, 9], in der ersten Iteration der Einfügesortierung vergleichen wir zunächst die ersten beiden Elemente wie 5 und 4, da arr[5] > arr[4] ist Wir tauschen sie aus, um das Array in aufsteigender Reihenfolge zu sortieren. Das Array sieht nun wie folgt aus:



4 5 60 9

Iteration 2

4 5 60 9

In der zweiten Iteration vergleichen wir die nächsten beiden Elemente, beispielsweise arr[5] mit arr[60].



Da arr[5] < arr[60] ist, findet kein Austausch statt, da bereits in aufsteigender Reihenfolge sortiert ist. Das Array wird nun zu:





4 5 60 9

Iteration 3

4 5 60 9

Wie in der dritten Iteration gleichen wir das dritte und vierte Element wie arr[60] mit arr[9] ab.

Nun sehen wir, dass arr[60] > arr[9] ist, sodass ein Austausch stattfindet, dann wird das Array in aufsteigender Reihenfolge sortiert.



4 5 9 60

So funktioniert die Einfügungssortierung in C, die ein Array-Element einfach in aufsteigender oder absteigender Reihenfolge sortiert.

Flussdiagramm der Einfügungssortierung

Es folgt das Flussdiagramm des Algorithmus der Einfügungssortierung:

Implementierungsbeispiel für Einfügungssortierung in C

Wir benötigen zunächst eine Sammlung von Elementen, die in absteigender und aufsteigender Reihenfolge sortiert werden müssen, um die Einfügesortiermethode in C zu erstellen. Nehmen Sie für dieses Beispiel an, dass wir es mit einem Array von Zahlen zu tun haben {5, 4, 60, 9} :

#include

Leere insertsort_ascending ( int arr1 [ ] , int N ) {

int ich , J , mein Schlüssel ;

//for-Schleife wird verwendet, um die i-Werte von 1 bis i

für ( ich = 1 ; ich < N ; ich ++ ) {

mein Schlüssel = arr1 [ ich ] ;

J = ich - 1 ;

während ( J >= 0 && arr1 [ J ] > mein Schlüssel ) {

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

J = J - 1 ;

}

arr1 [ J + 1 ] = mein Schlüssel ;

}

}

Leere insertsort_descending ( int arr2 [ ] , int M ) {

int ich , J , mein Schlüssel ;

//Eine weitere for-Schleife wird erstellt, um die i-Werte von 1 bis i

für ( ich = 1 ; ich < M ; ich ++ ) {

mein Schlüssel = arr2 [ ich ] ;

J = ich - 1 ;

während ( J >= 0 && arr2 [ J ] < mein Schlüssel ) {

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

J = J - 1 ;

}

arr2 [ J + 1 ] = mein Schlüssel ;

}

}

int hauptsächlich ( ) {

//Einfügesortierung mit absteigender Reihenfolge

int my_arr [ ] = { 5 , 4 , 60 , 9 } ; //initialisiere ein my_arr[] mit vier Werten

int M = Größe von ( my_arr ) / Größe von ( my_arr [ 0 ] ) ;

insertsort_descending ( my_arr , M ) ;

printf ( „Sortiertes Array in absteigender Reihenfolge:“ ) ;

für ( int ich = 0 ; ich < M ; ich ++ )

printf ( '%D ' , my_arr [ ich ] ) ;

printf ( ' \N ' ) ;

//Einfügesortierung mit aufsteigender Reihenfolge

int N = Größe von ( my_arr ) / Größe von ( my_arr [ 0 ] ) ;

insertsort_ascending ( arr2 , N ) ;

printf ( „Sortiertes Array in aufsteigender Reihenfolge:“ ) ;

für ( int ich = 0 ; ich < N ; ich ++ )

printf ( '%D ' , my_arr [ ich ] ) ;

printf ( ' \N ' ) ;

zurückkehren 0 ;

}

In diesem Code gibt es zwei Methoden insertsort_descending() , Und insertsort_ascending() Nehmen Sie die Array-Werte von my_arr[] . Der Code verwendet dann a for-Schleife um die Elemente des Arrays zu durchlaufen.

Wir rufen beide Funktionen in der Hauptfunktion auf, nachdem sie die Arrays in absteigender und aufsteigender Reihenfolge sortiert haben. Danach werden die for-Schleifen verwendet, um das sortierte Array zu drucken.

Wenn wir dieses Programm ausführen, wird die erwartete Ausgabe unten platziert:

Abschluss

Die Einfügungssortierung ist eine schnelle und einfache Möglichkeit, ein Array entweder in absteigender oder aufsteigender Reihenfolge zu sortieren. Bei kleinen Datensätzen eignet sich diese Sortiertechnik gut. Wie Sie in der obigen Anleitung sehen können, ist es einfach, ein Beispiel eines C-Programms zu implementieren, um die Einfügungssortierung sowohl in absteigender als auch in aufsteigender Reihenfolge zu verstehen.