Како имплементирати функцију сортирања у Ц ++?



Овај чланак ће вам помоћи да истражите функцију сортирања у језику ц ++ и у том процесу пружити вам детаљну демонстрацију концепта

Сортирање је једна од најосновнијих и најкориснијих функција примењених на податке. Циљ му је сређивање података на одређени начин, који се може повећавати или смањивати према захтевима. У Ц ++ СТЛ постоји уграђена функција под називом ‘сорт ()’ која нам омогућава да лако изведемо алгоритам сортирања. У овом чланку ћемо истражити функцију сортирања у Ц ++,

У овом чланку биће обрађени следећи савети:





ширина први алгоритам претраживања псеудокод

Настављамо са овим чланком о функцији сортирања у Ц ++

Врста ( ) функција

То је уграђена функција датотеке заглавља алгоритма која се користи за сортирање контејнера попут низа, вектора у одређеном редоследу. Интерно је ова функција имплементирана као брзо сортирање
Куицксорт је алгоритам подели и освоји. Куицксорт прво дели велику листу елемената на две мање под-листе: доњи елементи и виши елементи. Куицксорт затим рекурзивно сортира под-листе.



Кораци су следећи:
1. Изаберите случајни елемент (обично последњи елемент), који се назива осовина, са листе.
2. Преуредите листу на такав начин да сви елементи чија је вредност мања од пивота долазе испред пивота, док сви елементи са вредностима већим од пивота долазе након њега, а једнаке вредности могу ићи у било ком случају, ово је процес назива се операција партиције.
3. Рекурзивно сортирајте под-листу мањих елемената и под-листу већих елемената, поново изаберите осовину на под-листи и поделите их.
Основни случај рекурзије су спискови величине нула или један, које никада не треба сортирати, па њиховим комбиновањем сортирамо нашу листу.

Куицксорт је у пракси бржи од осталих О (н лог н) алгоритама, попут сортирања уметања или сортирања мехурића. Куицксорт се може применити помоћу алгоритма за партиционирање на месту, што значи да се целокупно сортирање може извршити са само О (лог н) додатним простором. Куицксорт није стабилна сорта.
Његова сложеност је следећа:
Најбољи случај - О (н лог н)
Најгори случај - О (н ^ 2)
Просечан случај - О (н лог н)

Синтакса:
сортирај (прва, последња)
Ево,
први - је индекс (показивач) првог елемента у опсегу који се сортира.
последњи - је индекс (показивач) последњег елемента у опсегу који се сортира.
На пример, желимо да сортирамо елементе низа ’арр’ од 1 до 10 положаја, користићемо сорт (арр, арр + 10) и он ће сортирати 10 елемената у растућем редоследу.
Повратна вредност
Ниједан



Сложеност

Просек сложености сортирања је Н * лог2 (Н), где је Н = последње - прво.

Опсег података
Објекат у опсегу [први, последњи) је измењен.

Изузеци
Преоптерећења са параметром предлошка који је именован као Извештај о грешкама извештаја на следећи начин:
Ако алгоритам не успе да додели меморију, стд :: бад_аллоц се баца као изузетак.
Ако извршавање функције која се позива као део алгоритма, баца изузетак стд :: терминате.

Настављамо са овим чланком о функцији сортирања у Ц ++

Пример - Да бисте сортирали податке у растућем редоследу:

#инцлуде усинг намеспаце стд инт маин () {инт арраи [] = {10, 35, 85, 93, 62, 77, 345, 43, 2, 10} инт н = сизеоф (арраи) / сизеоф (арраи [0] ) // 'сизеоф' даје величину укупног низа тј. величину сваког знака * бр. карактера // па да се добије бр. карактера // величину (низ) делимо са величином било ког карактера низа // овде је низ [0] сорт (арраи, арраи + н) цоут<< 'nArray after sorting using ' 'default sort is : n' for (int i = 0 i < n ++i) cout << array[i] << ' ' return 0 } 

Излаз:

Излаз - функција сортирања у Ц ++ - Едурека

Објашњење

Из горњег примера видимо да функција сорт () подразумевано сортира низ у растућем редоследу.

Настављамо са овим чланком о функцији сортирања у Ц ++

Пример - Да бисте сортирали податке у опадајућем редоследу:

Да бисмо сортирали податке низа у опадајућем редоследу, требамо увести трећи параметар који се користи за одређивање редоследа по којем ће се елементи сортирати. Можемо користити функцију „ларгер ()“ за сортирање података у опадајућем редоследу.

#инцлуде усинг намеспаце стд инт маин () {инт арраи [] = {41, 53, 4, 459, 60, 7, 23, 4, 232, 10} инт н = сизеоф (арраи) / сизеоф (арраи [0] ) сортирај (низ, низ + н, већи ()) цоут<< 'Array after sorting : n' for (int i = 0 i < n ++i) cout << array[i] << ' ' return 0 } 

Излаз:

Екп л Нација
Овде функција сорт () врши поређење на начин који ставља већи елемент испред.

Настављамо са овим чланком о функцији сортирања у Ц ++

Делимично_разврставање

Ц ++ СТЛ пружа нам функцију делимичног сортирања, функција је слична функцији сорт (), али за разлику од функције сорт () не користи се за сортирање читавог опсега, већ се користи за сортирање само његовог дела. Елементе сортира у опсегу [први, последњи), на начин да се елементи пре средњег елемента сортирају у растућем редоследу, док елементи после средње остају такви какви јесу.

Може се користити за проналажење највећег елемента ако користимо објект функције да бисмо сортирали прву позицију

Пример

#инцлуде #инцлуде #инцлуде помоћу простора имена стд инт маин () {вецтор вец = {10, 45, 60, 78, 23, 21, 30} вецтор :: итератор иптр делимични_сорт (вец.бегин (), вец.бегин () + 1, вец.енд (), већа ()) иптр = вец.бегин () цоут<< 'The largest element is = ' << *iptr return 0 } 

Излаз:

Објашњење:
Горњи код се може користити за проналажење највећег броја у низу, за проналажење најмањег броја у серији само треба да уклонимо већу наредбу.

стринг до датума јава утил

Тако смо дошли до краја овог чланка о „Функцији сортирања у Ц ++“. Ако желите да сазнате више, погледајте Јава Траининг компаније Едурека, поуздане компаније за учење на мрежи. Едурека курс је дизајниран да вас оспособи за основне и напредне Јава концепте заједно са разним Јава оквирима попут Хибернате & Спринг.

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