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



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

Шта је врста спајања? Мерге сорт је алгоритам сортирања заснован на поређењу који припада категорији подели и освоји. Сортирање обједињавањем користи се за сортирање низа на основу стратегије подели и освоји, која ће укратко бити обрађена у овом посту, заједно са другим концептима, попут алгоритма са примером. Такође ћемо размотрити временску сложеност сортирања стапања у Ц ++

Следећи смерници ће бити обрађени у овом чланку,





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

Дивиде анд Цонкуер алгоритам

Ако сте већ упознати са начином рада брзог сортирања, можда ћете бити свесни стратегије подели и освоји. Дивиде анд Цонкуер укључује три главна корака. Да бисмо разумели ове кораке, размотримо низ Хелло [] који има почетни индекс „а“ и завршни индекс „н“, па стога можемо записати свој низ на следећи начин Хелло [а & хеллип..н]



Поделити - Главни потез или основни корак поделе и освајања је подела датог проблема на под-проблеме или подделове. Квар је овде у томе што би подпроблеми требали бити слични првобитном проблему и мање величине. У нашем случају поделит ћемо наш низ на 2 половине [а & хеллип.м] [м + 1 & хеллип..н] м лежи у средини индекса а и н

Освојите - Када завршимо са поделом проблема на под-проблеме. Те подпроблеме решавамо рекурзивно.

Комбиновање - У овом кораку на одговарајући начин комбинујемо сва решења наших под-проблема. Другим речима, комбинујемо 2 различита сортирана низа да бисмо формирали један сортирани низ. Ето, имамо наш сортирани низ.



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

Разумевање алгоритма сортирања стапања на примеру

У овом тренутку знамо који ће приступ користити врста спајања. Па, хајде да размотримо пример и прођемо кроз сваки корак од Хелло [] неразврстаног до сортираног низа.
Пример- Здраво [10, 3, 7, 1, 15, 14, 9, 22]

како се користи класа скенера у јави

Merge-sort-in-C++

На горњој слици смо узели у обзир несортирани низ и користили смо спајање сортирања да бисмо добили сортирани низ. Погледајмо сада сваки корак и схватимо цео алгоритам

1. Прво смо разматрали низ Хелло [10, 3, 7, 1, 15, 14, 9, 22] у овом низу има укупно 8 елемената

2. Као што смо раније видели, спајање сортирања користи приступ подели и освоји за сортирање елемената. Пронашли смо м који лежи у средини нашег низа и поделили смо наш низ од средине где је м = (а - н) / 2 'а' индекс крајњег левог елемента, а н индекс крајњег десног елемента нашег низа .

3. После прве поделе имамо 2 дела која се састоје од по 4 елемента. Погледајмо прво полувреме [10, 3, 7, 1].

4. Поделимо [10, 3, 7, 1] у 2 дела [10, 3] и [7, 1]. После тога их даље делимо на [10], [3], [7], [1]. Даље дељење није могуће јер не можемо израчунати м. листа која садржи један елемент увек се сматра сортираном.

5. Како се одвија спајање? Хајде да сазнамо. Прво се [10] и [3] упоређују и спајају у растућем редоследу [3, 10] на исти начин на који добијамо [1, 7]

програм за сортирање избора у јави

6. После тога упоређујемо [3, 10] и [1, 7]. Једном упоређени спајамо их у растућем редоследу и добијамо [1, 3, 7, 10].

7. [15, 14, 9, 2] је такође подељен и комбинован на сличан начин да би се формирао [9, 14, 15, 22].

8. У последњем кораку упоређујемо и комбинујемо [15, 14, 9, 2] [9, 14, 15, 22] да бисмо добили наш сортирани низтј. [1, 3, 7, 9, 10, 14, 15, 22].

јава промени двоструко у инт

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

Псеудоцоде за спајање сортирања

Почни ако остане

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

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

Споји програм за сортирање на Ц ++

#инцлуде #инцлуде #инцлуде помоћу простора имена стд воид мерге (инт а [], инт Фирстиндек, инт м, инт Ластиндек) // спаја поднизове који су створени док је воид меридСорт поделе (инт а [], инт Фирстиндек, инт Ластиндек) {иф (Фирстиндексизе инт Здраво [сизе], и цоут<<'Enter the elements of the array one by one:n' for(i=0 i>Здраво [и] мергеСорт (Здраво, 0, величина - 1) цоут<<'The Sorted List isn' for(i=0 i

Оутпут-

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

Сложеност времена

Сложеност времена важан је аспект који треба узети у обзир када говоримо о алгоритмима. Сматра се да сортирање обједињавања има велику временску сложеност у поређењу са другим алгоритмима за сортирање.

Време рада у најгорем случају - О (н лог н)
Најбоље време рада - О (н лог н)
Просечно време рада - О (н лог н)

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

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