Как да внедрите сортиране чрез вмъкване в C с пример

Kak Da Vnedrite Sortirane Crez Vm Kvane V C S Primer



Алгоритъмът за сортиране, известен като „Сортиране чрез вмъкване“, е лесен и ефективен за малки набори от данни. Това е метод, базиран на сравнение, който подрежда елементите чрез преминаване през масив, оценявайки всеки елемент спрямо тези, които са били преди него, и ги разменя, ако е необходимо. В тази публикация ще разгледаме пример за това как да приложим сортирането чрез вмъкване на езика C.

Какво е сортиране чрез вмъкване в C?

Методът за сортиране, наречен сортиране чрез вмъкване, съпоставя всеки един елемент със съседните, докато итерира в масив. По-малък елемент от този преди него се вмъква в сортирания подмасив на подходящото място.

За допълнителна илюстрация демонстрирах пример, в който разгледах масив от четири елемента в масив като arr[]= {5, 4, 60, 9} и искаме да сортираме този елемент във възходящ ред с помощта на сортиране чрез вмъкване. Следните взаимодействия обясняват пълното сухо изпълнение на сортирането на вмъкване:







Итерация 1

5 4 60 9

Сега имаме масив като arr[5, 4, 60, 9], при първата итерация на сортиране с вмъкване първо сравняваме първите два елемента като 5 и 4, тъй като arr[5] е > arr[4], така че разменяме ги, за да сортираме масива във възходящ ред. Сега масивът ще бъде:



4 5 60 9

Итерация 2

4 5 60 9

Във втората итерация сравняваме следващите два елемента, като arr[5] с arr[60].



Тъй като arr[5] < arr[60], така че размяната не се случва, тъй като вече е сортирана във възходящ ред. Сега масивът става:





4 5 60 9

Итерация 3

4 5 60 9

Както при третата итерация, съпоставяме третия и четвъртия елемент като arr[60] с arr[9].

Сега виждаме, че arr[60] > arr[9], така че възниква размяна, след което масивът ще сортира във възходящ ред.



4 5 9 60

Ето как работи сортирането чрез вмъкване в C, което лесно сортира елемент от масив във възходящ или низходящ ред.

Блок-схема на сортиране при вмъкване

Следва блок-схема на алгоритъма за сортиране на вмъкване:

Пример за прилагане на сортиране чрез вмъкване в C

Първо се нуждаем от колекция от елементи, които трябва да бъдат сортирани в низходящ и възходящ ред, за да изградим метода за сортиране чрез вмъкване в C. Да приемем за целите на този пример, че имаме работа с масив от числа {5, 4, 60, 9} :

#include

невалиден вмъквания сортиране_възходящо ( вътр arr1 [ ] , вътр н ) {

вътр аз , й , my_key ;

//for цикълът се използва за повторение на i стойностите от 1 до i

за ( аз = 1 ; аз < н ; аз ++ ) {

my_key = arr1 [ аз ] ;

й = аз - 1 ;

докато ( й >= 0 && arr1 [ й ] > my_key ) {

arr1 [ й + 1 ] = arr1 [ й ] ;

й = й - 1 ;

}

arr1 [ й + 1 ] = my_key ;

}

}

невалиден вмъквания сортиране_низходящо ( вътр обр2 [ ] , вътр м ) {

вътр аз , й , my_key ;

// създава се друг for цикъл за итериране на i стойностите от 1 до i

за ( аз = 1 ; аз < м ; аз ++ ) {

my_key = обр2 [ аз ] ;

й = аз - 1 ;

докато ( й >= 0 && обр2 [ й ] < my_key ) {

обр2 [ й + 1 ] = обр2 [ й ] ;

й = й - 1 ;

}

обр2 [ й + 1 ] = my_key ;

}

}

вътр основен ( ) {

//Вмъкване-Сортиране в низходящ ред

вътр my_arr [ ] = { 5 , 4 , 60 , 9 } ; //инициализиране на my_arr[] с четири стойности

вътр м = размер на ( my_arr ) / размер на ( my_arr [ 0 ] ) ;

вмъквания сортиране_низходящо ( my_arr , м ) ;

printf ( 'Сортиран масив в низходящ ред: ' ) ;

за ( вътр аз = 0 ; аз < м ; аз ++ )

printf ( '%д ' , my_arr [ аз ] ) ;

printf ( ' ' ) ;

//Вмъкване-Сортиране във възходящ ред

вътр н = размер на ( my_arr ) / размер на ( my_arr [ 0 ] ) ;

вмъквания сортиране_възходящо ( обр2 , н ) ;

printf ( 'Сортиран масив във възходящ ред: ' ) ;

за ( вътр аз = 0 ; аз < н ; аз ++ )

printf ( '%д ' , my_arr [ аз ] ) ;

printf ( ' ' ) ;

връщане 0 ;

}

В този код два метода insertionsort_descending() , и insertionsort_ascending() вземете стойностите на масива от my_arr[] . След това кодът използва a за цикъл за итерация през елементите на масива.

Извикваме и двете функции в основната функция, след като са сортирали масивите в низходящ и възходящ ред. След това циклите for се използват за отпечатване на сортирания масив.

Когато стартираме тази програма, очакваният резултат е поставен по-долу:

Заключение

Сортирането чрез вмъкване е бърз и лесен начин за сортиране на масив в низходяща или възходяща последователност. За малки набори от данни тази техника за сортиране се представя добре. Както можете да видите в ръководството по-горе, лесно е да се приложи пример за C програма, за да се разбере лесно сортирането при вмъкване както в низходящ, така и във възходящ ред.