Jak zaimplementować sortowanie przez wstawianie w C na przykładzie

Jak Zaimplementowac Sortowanie Przez Wstawianie W C Na Przykladzie



Algorytm sortowania znany jako „Sortowanie przez wstawianie” jest prosty i skuteczny w przypadku małych zbiorów danych. Jest to metoda oparta na porównaniach, która porządkuje elementy, przechodząc przez tablicę, porównując każdy element z tymi, które były przed nim i wymieniając je, jeśli to konieczne. W tym poście omówimy przykład implementacji sortowania przez wstawianie w języku C.

Co to jest sortowanie przez wstawianie w C?

Metoda sortowania zwana sortowaniem przez wstawianie dopasowuje każdy pojedynczy element do sąsiednich podczas iteracji w tablicy. Mniejszy element niż poprzedni jest wstawiany do posortowanej podtablicy w odpowiednim miejscu.

Aby dokładniej zilustrować, zademonstrowałem przykład, w którym rozważałem tablicę czterech elementów w tablicy, takiej jak tablica[]= {5, 4, 60, 9} i chcemy posortować ten element rosnąco za pomocą sortowania przez wstawianie. Następujące interakcje wyjaśniają całkowity przebieg próbny sortowania przez wstawianie:







Iteracja 1

5 4 60 9

Mamy teraz tablicę jako arr [5, 4, 60, 9], w pierwszej iteracji sortowania przez wstawianie najpierw porównujemy pierwsze dwa elementy, takie jak 5 i 4, Ponieważ arr [5] to > arr [4], więc zamieniamy je, aby posortować tablicę w porządku rosnącym. Teraz tablica będzie:



4 5 60 9

Iteracja 2

4 5 60 9

W drugiej iteracji porównujemy kolejne dwa elementy, takie jak arr[5] z arr[60].



Ponieważ arr [5] < arr [60], więc zamiana nie następuje, ponieważ jest już posortowana w porządku rosnącym. Teraz tablica staje się:





4 5 60 9

Iteracja 3

4 5 60 9

Podobnie jak w trzeciej iteracji, dopasowujemy trzeci i czwarty element, na przykład arr[60] z arr[9].

Teraz widzimy, że arr[60] > arr[9] następuje zamiana, a następnie tablica zostanie posortowana w porządku rosnącym.



4 5 9 60

W ten sposób sortowanie przez wstawianie działa w C, które łatwo sortuje element tablicy w porządku rosnącym lub malejącym.

Schemat blokowy sortowania przez wstawianie

Poniżej przedstawiono schemat blokowy algorytmu sortowania przez wstawianie:

Implementacja przykładu sortowania przez wstawianie w C

Najpierw potrzebujemy zbioru elementów, które należy posortować malejąco i rosnąco, aby zbudować metodę sortowania przez wstawianie w C. Załóżmy na potrzeby tego przykładu, że mamy do czynienia z tablicą liczb {5, 4, 60, 9} :

#include

próżnia sortowanie_wstawiania_rosnące ( int arr1 [ ] , int N ) {

int I , J , mój klucz ;

Pętla //for służy do iteracji wartości i od 1 do i

Do ( I = 1 ; I < N ; I ++ ) {

mój klucz = arr1 [ I ] ;

J = I - 1 ;

chwila ( J >= 0 && arr1 [ J ] > mój klucz ) {

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

J = J - 1 ;

}

arr1 [ J + 1 ] = mój klucz ;

}

}

próżnia sortowanie_wstawiania_malejące ( int arr2 [ ] , int M ) {

int I , J , mój klucz ;

// tworzona jest kolejna pętla for w celu iteracji wartości i od 1 do i

Do ( I = 1 ; I < M ; I ++ ) {

mój klucz = arr2 [ I ] ;

J = I - 1 ;

chwila ( J >= 0 && arr2 [ J ] < mój klucz ) {

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

J = J - 1 ;

}

arr2 [ J + 1 ] = mój klucz ;

}

}

int główny ( ) {

// Sortowanie przez wstawianie w kolejności malejącej

int mój_arr [ ] = { 5 , 4 , 60 , 9 } ; // zainicjuj my_arr[] mający cztery wartości

int M = rozmiar ( mój_arr ) / rozmiar ( mój_arr [ 0 ] ) ;

sortowanie_wstawiania_malejące ( mój_arr , M ) ;

drukujf ( 'Tablica posortowana malejąco: ' ) ;

Do ( int I = 0 ; I < M ; I ++ )

drukujf ( '%D ' , mój_arr [ I ] ) ;

drukujf ( ' \N ' ) ;

// Sortowanie przez wstawianie w porządku rosnącym

int N = rozmiar ( mój_arr ) / rozmiar ( mój_arr [ 0 ] ) ;

sortowanie_wstawiania_rosnące ( arr2 , N ) ;

drukujf ( 'Posortowana tablica w porządku rosnącym: ' ) ;

Do ( int I = 0 ; I < N ; I ++ )

drukujf ( '%D ' , mój_arr [ I ] ) ;

drukujf ( ' \N ' ) ;

powrót 0 ;

}

W tym kodzie dwie metody sortowanie wstawiania_malejąco() , I sortowanie wstawiania_rosnąco() weź wartości tablicowe mój_arr[] . Kod następnie używa a dla pętli iterować po elementach tablicy.

Obie funkcje wywołujemy w funkcji main po posortowaniu tablic w porządku malejącym i rosnącym. Następnie pętle for są używane do drukowania posortowanej tablicy.

Gdy uruchomimy ten program, oczekiwane dane wyjściowe zostaną umieszczone poniżej:

Wniosek

Sortowanie przez wstawianie to szybki i łatwy sposób sortowania tablicy w kolejności malejącej lub rosnącej. W przypadku małych zestawów danych ta technika sortowania sprawdza się dobrze. Jak widać w powyższym przewodniku, łatwo jest zaimplementować przykładowy program w C, aby łatwo zrozumieć sortowanie przez wstawianie zarówno w porządku malejącym, jak i rosnącym.