Како имплементирати сортирање уметањем у Ц са примером

Kako Implementirati Sortirane Umetanem U C Sa Primerom



Алгоритам за сортирање познат као „Сортирање уметањем“ је једноставан и ефикасан за мале скупове података. То је метода заснована на поређењу која распоређује елементе петљом кроз низ, процењујући сваки елемент у односу на оне који су били пре њега и размењујући их ако је потребно. У овом посту ћемо проћи кроз пример како имплементирати сортирање уметањем у језику Ц.

Шта је сортирање уметањем у Ц?

Метода сортирања која се зове сортирање уметањем поклапа сваки елемент са суседним док се понавља низ низ. Мањи елемент од оног пре него што је уметнут у сортирани подниз на одговарајућој локацији.

Да бих даље илустровао, показао сам пример у којем сам разматрао низ од четири елемента у низу као што је арр[]= {5, 4, 60, 9} и желимо да сортирамо овај елемент у растућем редоследу користећи сортирање уметањем. Следеће интеракције објашњавају комплетан суви рад сортирања уметањем:







Итерација 1

5 4 60 9

Сада имамо низ као арр[5, 4, 60, 9], у првој итерацији сортирања уметањем прво упоређујемо прва два елемента као што су 5 и 4, како је арр[5] > арр[4] тако замењујемо их да сортирамо низ у растућем редоследу. Сада ће низ бити:



4 5 60 9

Итерација 2

4 5 60 9

У другој итерацији поредимо следећа два елемента, као што је арр[5] са арр[60].



Како је арр[5] < арр[60] тако се замена не дешава јер је већ сортирана у растућем редоследу. Сада, низ постаје:





4 5 60 9

Итерација 3

4 5 60 9

Као иу трећој итерацији, упарујемо трећи и четврти елемент као што је арр[60] са арр[9].

Сада видимо да је арр[60] > арр[9] тако да долази до замене, тада ће се низ сортирати у растућем редоследу.



4 5 9 60

Овако функционише сортирање уметањем у Ц који лако сортира елемент низа у растућем или опадајућем редоследу.

Дијаграм тока сортирања уметања

Следи дијаграм тока алгоритма сортирања уметањем:

Пример имплементације сортирања уметањем у Ц

Прво нам је потребна колекција елемената које треба сортирати у опадајућем и растућем редоследу да бисмо направили метод сортирања уметањем у Ц. Претпоставимо за потребе овог примера да имамо посла са низом бројева {5, 4, 60, 9} :

#инцлуде <стдио.х>

празнина инсертионсорт_асцендинг ( инт арр1 [ ] , инт н ) {

инт и , ј , мој кључ ;

//фор петља се користи за понављање и вредности од 1 до и<н

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

мој кључ = арр1 [ и ] ;

ј = и - 1 ;

док ( ј >= 0 && арр1 [ ј ] > мој кључ ) {

арр1 [ ј + 1 ] = арр1 [ ј ] ;

ј = ј - 1 ;

}

арр1 [ ј + 1 ] = мој кључ ;

}

}

празнина инсертионсорт_десцендинг ( инт арр2 [ ] , инт м ) {

инт и , ј , мој кључ ;

//друга фор петља је креирана за понављање и вредности од 1 до и<м

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

мој кључ = арр2 [ и ] ;

ј = и - 1 ;

док ( ј >= 0 && арр2 [ ј ] < мој кључ ) {

арр2 [ ј + 1 ] = арр2 [ ј ] ;

ј = ј - 1 ;

}

арр2 [ ј + 1 ] = мој кључ ;

}

}

инт главни ( ) {

//Инсертион-Сорт у опадајућем редоследу

инт ми_арр [ ] = { 5 , 4 , 60 , 9 } ; //иницијализујемо ми_арр[] са четири вредности

инт м = величина ( ми_арр ) / величина ( ми_арр [ 0 ] ) ;

инсертионсорт_десцендинг ( ми_арр , м ) ;

принтф ( 'Сортиран низ у опадајућем редоследу: ' ) ;

за ( инт и = 0 ; и < м ; и ++ )

принтф ( '%д' , ми_арр [ и ] ) ;

принтф ( ' ' ) ;

//Инсертион-Сорт узлазним редоследом

инт н = величина ( ми_арр ) / величина ( ми_арр [ 0 ] ) ;

инсертионсорт_асцендинг ( арр2 , н ) ;

принтф ( 'Сортиран низ у растућем редоследу: ' ) ;

за ( инт и = 0 ; и < н ; и ++ )

принтф ( '%д' , ми_арр [ и ] ) ;

принтф ( ' ' ) ;

повратак 0 ;

}

У овом коду, две методе инсертионсорт_десцендинг() , и инсертионсорт_асцендинг() узети вредности низа од мој_арр[] . Код тада користи а за петљу за понављање кроз елементе низа.

Обе функције позивамо у главној функцији након што сортирају низове у опадајућем и растућем редоследу. Након тога, фор петље се користе за штампање сортираног низа.

Када покренемо овај програм, очекивани излаз се налази испод:

Закључак

Сортирање уметањем је брз и лак начин за сортирање низа у опадајућем или растућем низу. За мале скупове података, ова техника сортирања ради добро. Као што можете видети у горњем водичу, једноставно је имплементирати пример Ц програма да бисте лако разумели сортирање уметања у опадајућем и растућем редоследу.