Како сортирати низове помоћу ксорт() у Ц

Kako Sortirati Nizove Pomocu Ksort U C



Сортирање је основна операција у компјутерском програмирању и укључује сређивање збирке података одређеним редоследом. Један од начина да се сортира низ елемената у Ц је коришћење ксорт() функција, која је део стандардне библиотеке. Ова функција узима низ, његову величину и функцију поређења као аргументе и сортира низ у растућем редоследу по подразумеваној вредности.

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

ксорт() у Ц

Ц стандардна библиотека нам олакшава ксорт() функција која се једноставно користи за сортирање низова. То је изузетно оптимизована и брза функција која може да ради са било којим низом типа података.







Датотека заглавља користећи ксорт() у Ц

Тхе ксорт() метода је дефинисана унутар стдлиб.х датотека заглавља, која мора бити дефинисана пре имплементације ксорт() у Ц програму.



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

Декларација ксорт()

Декларација о ксорт() функција је следећа:



празнина ксорт ( празнина * база , број_елемената , величина_елемента , функција_поређења )

Параметри функције ксорт().

Параметри на ксорт() функције су:





база: Показивач на први елемент низа који треба сортирати.

број_елемената: Број елемената у низу који треба сортирати.



величина_елемента: Величина у бајтовима сваког елемента у низу.

упоређивање_функција: Показивач на функцију поређења која дефинише редослед елемената.

Шта је функција поређења у ксорт()

Функција поређења узима два параметра, оба типа цонст воид*, који указују на елементе који се пореде. Функција треба да врати цео број мањи од, једнак или већи од 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} . После овога ксорт() имају три параметра типа низа, параметар нум говори о укупном броју елемената низа, сизеоф(инт) односи се на укупну величину низа, а поређење се користи за упоређивање елемената низа један по један. Затим одштампајте сортирани низ користећи принтф() функција у Ц.

Излаз

Закључак

ксорт је моћна функција у Ц програмирању за сортирање низова било ког типа. Користи алгоритам брзог сортирања за сортирање елемената у растућем или опадајућем редоследу на основу функције поређења. Горњи водич вам показује једноставан начин да имплементирате ксорт у Ц програмирање уз рад корак по корак ксорт алгоритам.