Како имплементирати КуицкСорт у Јави?



Овај чланак ће вам представити још један алгоритам за сортирање „подели и победи“, који је КуицкСорт у Јави, и пратиће га демонстрацијом.

КуицкСорт је алгоритам за поделу и освајање. У парадигми дизајна алгоритма Дивиде & Цонкуер, проблеме у под-проблеме делимо рекурзивно, затим решавамо под-проблеме и на крају комбинујемо решења да бисмо пронашли коначни резултат. У овом чланку ћемо се усредсредити на КуицкСорт Ин

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





Почнимо!

Једна ствар коју морате имати на уму приликом поделе проблема на подпроблеме је да се структура подпроблема не мења од првобитног проблема.
Дивиде & Цонкуер алгоритам има 3 корака:



  • Подјела: Разбијање проблема на подпроблеме
  • Освојити: Рекурзивно решавање потпроблема
  • Комбиновање: Комбиновање решења за постизање коначног резултата

Слика- Брзо сортирање у Јави- Едурека

унакрсно испитивање претраживача у селену вебдривер-у

Постоје различити алгоритми засновани на парадигми подели и освоји. Брзо сортирање и спајање су међу њима.

Иако је најгора временска сложеност КуицкСорт-а О (н2), што је више од многих других алгоритама за сортирање попут Мерге Сорт и Хеап Сорт, КуицкСорт је у пракси бржи, јер се његова унутрашња петља може ефикасно применити на већини архитектура и подаци из стварног света.



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

  • Брање првог елемента
  • Изаберите последњи елемент
  • Одабир случајног елемента
  • Одабир средњег елемента

Следећа важна ствар коју треба разумети је функција партиције () у алгоритму за брзо сортирање. Функција партиције за узимање пивот елемента, поставља га у десни положај, помера све елементе мање од пивот елемента улево и све елементе веће удесно. Куицксорт-у је потребно линеарно време за то.
Тада је низ подељен на два дела од елемента пивот (тј. Елементи мањи од пивота и елементи већи од пивота) и оба низа се рекурзивно сортирају помоћу Куицксорт алгоритма.

Сада када разумемо рад алгоритма КуицкСорт. Хајде да разумемо како да применимо Куицксорт алгоритам на Јави.

КуицкСорт Функција:

/ * Куицксорт функција треба да се низ сортира по најнижем и највишем индексу * /

воид сорт (инт арр [], инт ловИндек, инт хигхИндек) {// До ловИндек = хигхИндек иф (ловИндек

Погледајмо сада партицијски код да бисмо разумели како он функционише.

Подела Код

У коду за партиционирање изабраћемо последњи елемент као стожерни елемент. Прелазимо цео низ (тј. Користећи променљиву ј у нашем случају). Пратимо последњи најмањи елемент у низу (тј. Користећи променљиву и у нашем случају). Ако нађемо било који елемент мањи од пивота, померамо тренутни елемент а [ј] са арр [и], у супротном настављамо да се крећемо.

инт партиција (инт арр [], инт ловИндек, инт хигхИндек) {// Израда последњег елемента као пивот инт пивот = арр [хигхИндек] // Коришћење и за праћење мањих елемената из пивот инт и = (ловИндек-1) фор (инт ј = ловИндек ј

Сад кад сте разумели функцију Куицксорт & партиције, дозволите нам да брзо погледамо комплетан код

КуицкСорт Јава Цоде

класа КуицкСорт {// Метода партиције инт партиција (инт арр [], инт ловИндек, инт хигхИндек) {инт пивот = арр [хигхИндек] инт и = (ловИндек-1) за (инт ј = ловИндек ј

// Метода сортирања

воид сорт (инт арр [], инт ловИндек, инт хигхИндек) {иф (ловИндек

// Метода за испис низа

како поставити пут до класе у јави
статиц воид принтАрраи (инт арр []) {инт н = арр.ленгтх фор (инт и = 0 и

// Главни метод

публиц статиц воид маин (Стринг аргс []) {инт арр [] = {101, 37, 68, 29, 11, 5} инт н = арр.ленгтх КуицкСорт об = нев КуицкСорт () об.сорт (арр, 0, н-1) Систем.оут.принтлн ('сортирани низ') принтАрраи (арр)}}

Излаз:

Излаз - Брзо сортирање у Јави- Едурека

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

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