Ово упутство илуструје сортирање низова помоћу ксорт() функцију у Ц-у и такође вам помаже да је разумете помоћу Ц примера кодова.
ксорт() у Ц
Ц стандардна библиотека нам олакшава ксорт() функција која се једноставно користи за сортирање низова. То је изузетно оптимизована и брза функција која може да ради са било којим низом типа података.
Датотека заглавља користећи ксорт() у Ц
Тхе ксорт() метода је дефинисана унутар стдлиб.х датотека заглавља, која мора бити дефинисана пре имплементације ксорт() у Ц програму.
#инцлуде <стдлиб.х>
Декларација ксорт()
Декларација о ксорт() функција је следећа:
празнина ксорт ( празнина * база , број_елемената , величина_елемента , функција_поређења )
Параметри функције ксорт().
Параметри на ксорт() функције су:
база: Показивач на први елемент низа који треба сортирати.
број_елемената: Број елемената у низу који треба сортирати.
величина_елемента: Величина у бајтовима сваког елемента у низу.
упоређивање_функција: Показивач на функцију поређења која дефинише редослед елемената.
Шта је функција поређења у ксорт()
Функција поређења узима два параметра, оба типа цонст воид*, који указују на елементе који се пореде. Функција треба да врати цео број мањи од, једнак или већи од 0, у зависности од тога да ли први елемент треба сортирати пре, на истој позицији или после другог елемента, респективно.
Како ксорт функционише у Ц
Тхе ксорт() функција ради на следећи начин:
Белешка: Овде разматрамо а инт арр[] = {5, 2, 8, 3, 1, 9};
1: У почетку, функција ксорт ће бити позвана са следећим параметрима:
ксорт ( арр , 6 , величина ( инт ) , функција_поређења ) ;где је арр показивач на низ, 6 је број елемената у низу, сизеоф(инт) је величина сваког елемента у низу, а цомпаратион_фунцтион је функција која одређује редослед по којем се елементи сортирају.
2: Функција ксорт бира стожерни елемент. Рецимо да бира 3 као стожер.
3: Функција ксорт дели низ на два подниза: {2, 1} и {5, 8, 9}. Први подниз садржи елементе који су мањи или једнаки стожеру, а други подниз садржи елементе који су већи од пивота.
4: Функција ксорт рекурзивно позива себе на сваком од поднизова.
5: Функција ксорт бира пивотове за сваки од поднизова. Рецимо да бира 1 и 8 као стожере.
6: Функција ксорт дели сваки подниз на још два подниза и рекурзивно позива себе на сваком од ових поднизова.
7: Функција ксорт комбинује сортиране поднизе у један сортирани низ: {1, 2} и {5, 8, 9} постају {1, 2, 5, 8, 9}.
8: Враћа се цео сортирани низ.
Имплементација ксорт у Ц програмирању
Следећи код показује имплементацију ксорт функција у Ц програмирању.
#инцлуде <стдио.х>#инцлуде <стдлиб.х>
инт упоредити ( конст празнина * а1 , конст празнина * б1 )
{
повратак ( * ( инт * ) а1 - * ( инт * ) б1 ) ;
}
инт главни ( )
{
инт и = 0 , на једном = 6 ;
инт низ [ ] = { 5 , 2 , 8 , 3 , 1 , 9 } ;
ксорт ( низ , на једном , величина ( инт ) , упоредити ) ;
принтф ( 'Сортирани елементи низа помоћу ксорт() су: ' ) ;
за ( и = 0 ; и < на једном ; и ++ ) {
принтф ( '%д' , низ [ и ] ) ; }
повратак 0 ;
}
У горњем коду, прво је направљена функција поређења са два параметра а1 и б1 . Затим извршавање почиње од маин(). У главном, ми иницијализујемо две целобројне променљиве као и=0 и нум=6. Затим декларишемо низ са шест елемената као {5, 2, 8, 3, 1, 9} . После овога ксорт() имају три параметра типа низа, параметар нум говори о укупном броју елемената низа, сизеоф(инт) односи се на укупну величину низа, а поређење се користи за упоређивање елемената низа један по један. Затим одштампајте сортирани низ користећи принтф() функција у Ц.
Излаз
Закључак
ксорт је моћна функција у Ц програмирању за сортирање низова било ког типа. Користи алгоритам брзог сортирања за сортирање елемената у растућем или опадајућем редоследу на основу функције поређења. Горњи водич вам показује једноставан начин да имплементирате ксорт у Ц програмирање уз рад корак по корак ксорт алгоритам.