Разумевање начина примене бинарне хрпе у Јави



Овај чланак ће вам пружити детаљно и свеобухватно знање о томе како примерима ограничити бинарну гомилу у јави.

Овај чланак ће вам дати потпун преглед рада сортирања гомиле, а касније ћемо научити како да имплементирамо Бинарни гомилу у Јави.

Ево дневног реда за овај чланак:





  1. Шта је сорта хрпе?
  2. Мак Хеап
  3. Мин Хеап
  4. Имплементација гомиле у Јави
    • Дијаграм
    • Код

Почнимо!

Шта је сорта хрпе?

Хеап је у основи структура података заснована на стаблу. Има чворове. Чвор се састоји од одређених елемената. Сваки чвор садржи један елемент.



Чворови могу имати децу. Ако нема деце, то се зове Лист.

Постоје два правила која треба поштовати:

  • Вредност сваког чвора мора бити мања или једнака свим вредностима ускладиштеним у његовом детету.
  • Има најмању могућу висину.

Гомиле су изузетно ефикасне у вађењунајмањи или највећи елемент.



Пређимо на мин гомилу сада!

пронађи највећи број у низу јава

Мин Хеап

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

Приказ мин гомиле

Арр [(и-1) / 2]: ово ће вратити родитељски чвор.

Арр [(2 * и) + 1]: ово ће вратити леви подређени чвор.

Арр [(2 * и) + 2]: ово ће вратити прави подређени чвор.

Постоје одређене методе Мин Хеап-а:

  • инсерт (): Додаје се нови кључ на крају стабла. У случају да је нови кључ већи од надређеног, тада не треба ништа радити, у супротном, морамо се окренути да бисмо поставили својство гомиле.
  • гетМин (): ове методе помажу у враћању основног елемента.
  • ектрацтМин (): овај метод враћа минимумелемент.

Сада прелазимо на Мак гомилу.

Максимална гомила

Мак хеап је комплетно бинарно стабло у којем је вредност основног елемента већа или једнака било ком од подређених елемената.

Мак гомила се такође састоји од неколико метода!

  • Уметни (): убациће елемент у гомилу.
  • Делете () : избрисаће елемент из гомиле.
  • ФиндМак (): наћи ће максимум елемента из гомиле.
  • принтХеап (): Штампаће садржај гомиле

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

Имплементација гомиле у Јави

Дијаграм:

зашто нам је потребна сериализација у јави

Heap

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

Сада, прелазећи на наш следећи сегмент, видећемо како да имплементирамо бинарну гомилу у Јави.

Шифра:

јавна класа БинариХеап {привате статиц финал инт д = 2 привате инт [] хеап привате инт хеапСизе / ** * Ово ће иницијализовати нашу гомилу са подразумеваном величином. * / публиц БинариХеап (инт цапацити) {хеапСизе = 0 хеап = нев инт [цапацити + 1] Арраис.филл (хеап, -1)} / ** * Ово ће проверити да ли је гомила празна или не * Сложеност: О ( 1) * / публиц боолеан исЕмпти () {ретурн хеапСизе == 0} / ** * Ово ће проверити да ли је гомила пуна или не * Сложеност: О (1) * / публиц боолеан исФулл () {ретурн хеапСизе == хеап .ленгтх} привате инт парент (инт и) {ретурн (и-1) / д} привате инт ктхЦхилд (инт и, инт к) {ретурн д * и + к} / ** * Ово ће уметнути нови елемент у гомилу * Сложеност: О (лог Н) * Као најгори могући сценарио, морамо прећи до корена * / публиц воид инсерт (инт к) {иф (исФулл ()) бацити нови НоСуцхЕлементЕкцептион ('Гомила је пуна, нема простора за уметање нови елемент ') хеап [хеапСизе ++] = к хеапифиУп (хеапСизе-1)} / ** * Ово ће обрисати елемент у индексу к * Сложеност: О (лог Н) * * / публиц инт делете (инт к) {иф (исЕмпти ()) бацити нови НоСуцхЕлементЕкцептион ('Хеап ис емпти, Но елемент то делете') инт кеи = хеап [к] хеап [к] = хеап [хеапСизе -1] хеапСизе-- хеапифиДовн (к) рету рн кључ} / ** * Овај метод се користи за одржавање својства гомиле током уметања елемента. * * / привате воид хеапифиУп (инт и) {инт темп = хеап [и] вхиле (и> 0 && темп> хеап [надређени (и)]) {гомила [и] = гомила [надређени (и)] и = надређени (и)} хеап [и] = темп} / ** * Овај метод се користи за одржавање својства гомиле током брисања елемента. * * / привате воид хеапифиДовн (инт и) {инт цхилд инт темп = хеап [и] вхиле (ктхЦхилд (и, 1)хеап [ригхтЦхилд]? лефтЦхилд: ригхтЦхилд} / ** * Овај метод се користи за испис свих елемената хрпе * * / публиц воид принтХеап () {Систем.оут.принт ('нХеап =') фор (инт и = 0 и

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

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