Razumevanje uporabe binarne kopice v Javi

Ta članek vam bo zagotovil podrobno in izčrpno znanje o tem, kako s primeri omejiti binarno kopico v javi.

Ta članek vam bo dal popoln pregled delovanja razvrščanja kopice, kasneje pa se bomo naučili izvajati binarni kup v Javi.

program povezanega seznama v c

Tu je dnevni red tega članka:





  1. Kaj je sorta kupa?
  2. Max Heap
  3. Min kup
  4. Izvajanje kopice v Javi
    • Diagram
    • Koda

Začnimo!

Kaj je sorta kupa?

Kup je v bistvu drevesna podatkovna struktura. Ima vozlišča. Vozlišče vsebuje nekatere elemente. Vsako vozlišče vsebuje en element.



Vozlišča imajo lahko otroke. Če otrok ni, se imenuje list.

Upoštevati je treba dva pravila:

  • Vrednost vsakega vozlišča mora biti manjša ali enaka vsem vrednostim, shranjenim v njegovih podrejenih sistemih.
  • Ima najmanjšo možno višino.

Kupe so izjemno učinkovite pri pridobivanjunajmanjši ali največji element.



Preidimo na min kup zdaj!

Min kup

Min kup je popolno binarno drevo, v katerem je vrednost korenskega elementa manjša ali enaka kateremu koli od podrejenih elementov.

Prikaz najmanjše kopice

Arr [(i-1) / 2]: to bo vrnilo nadrejeno vozlišče.

Arr [(2 * i) + 1]: to bo vrnilo levo podrejeno vozlišče.

Arr [(2 * i) + 2]: to bo vrnilo desno podrejeno vozlišče.

Obstajajo nekatere metode Min Heap:

  • vstavi(): Dodan je nov ključ na koncu drevesa. V primeru, da je novi ključ večji od nadrejenega, potem ni treba ničesar storiti, drugače se moramo pomakniti navzgor, da nastavimo lastnost kopice.
  • getMin (): ta metoda pomaga vrniti korenski element.
  • extractMin (): ta metoda vrne minimumelement.

Prehod na Max kup zdaj.

Največ kup

Max heap je popolno binarno drevo, v katerem je vrednost korenskega elementa večja ali enaka kateremu koli od podrejenih elementov.

Max heap je sestavljen tudi iz več načinov!

  • Vstavi (): v kup bo vstavil element.
  • Izbriši () : element bo izbrisal iz kupa.
  • FindMax (): iz kupa bo našel največ elementov.
  • printHeap (): Natisnil bo vsebino kupa

Zdaj pa vam pokažem izvedbo kopice skozi diagram in kasneje JavaKoda.

Izvajanje kopice v Javi

Diagram:

Heap

Zgornji diagram prikazuje binarno kopico v Javi. Kot ste izvedeli, da obstajata dve kopici: Min kup in Max kup, je tukaj diagram:

Zdaj, ko nadaljujemo z naslednjim segmentom, bomo videli, kako v Java uvesti binarni kup.

Koda:

javni razred BinaryHeap {private static final int d = 2 private int [] heap private int heapSize / ** * To bo naš kup inicializiralo s privzeto velikostjo. * / public BinaryHeap (int capacity) {heapSize = 0 heap = new int [capacity + 1] Arrays.fill (heap, -1)} / ** * S tem se preveri, ali je kup prazen ali ne * Kompleksnost: O ( 1) * / public boolean isEmpty () {return heapSize == 0} / ** * S tem se preveri, ali je kup poln ali ne * Kompleksnost: O (1) * / public boolean isFull () {return heapSize == heap .length} private int nadrejeni (int i) {return (i-1) / d} private int kthChild (int i, int k) {return d * i + k} / ** * To bo v kup vstavilo nov element * Kompleksnost: O (log N) * Kot najslabši možni primer moramo prehoditi do korena * / public void insert (int x) {if (isFull ()) metati novo NoSuchElementException ('Kopica je polna, prostora za vstavljanje ni nov element ') heap [heapSize ++] = x heapifyUp (heapSize-1)} / ** * To bo izbrisalo element v indeksu x * Kompleksnost: O (log N) * * / public int delete (int x) {if (isEmpty ()) vrzi nov NoSuchElementException ('kopica je prazna, element ni treba izbrisati') int key = kopica [x] kopica [x] = kopica [heapSize -1] heapSize-- heapifyDown (x) retu tipka rn} / ** * Ta metoda se uporablja za vzdrževanje lastnosti kopice med vstavljanjem elementa. * * / private void heapifyUp (int i) {int temp = heap [i] while (i> 0 && temp> heap [nadrejeni (i)]) {heap [i] = heap [nadrejeni (i)] i = nadrejeni (i)} heap [i] = temp} / ** * Ta metoda se uporablja za vzdrževanje lastnosti kopice med brisanjem elementa. * * / private void heapifyDown (int i) {int child int temp = heap [i] while (kthChild (i, 1)heap [rightChild]? leftChild: rightChild} / ** * Ta metoda je bila uporabljena za tiskanje vseh elementov kopice * * / public void printHeap () {System.out.print ('nHeap =') for (int i = 0 i

S tem smo prišli do konca tega članka o Binarni kopici v Javi. Oglejte si Edureka, zaupanja vredno podjetje za spletno učenje z mrežo več kot 250.000 zadovoljnih učencev, ki se širijo po vsem svetu. Edurekin tečaj za usposabljanje in certificiranje Java J2EE in SOA je namenjen študentom in strokovnjakom, ki želijo biti razvijalec Java. Tečaj je zasnovan tako, da vam nudi uvod v programiranje Java in vas usposobi za osnovne in napredne koncepte Java, skupaj z različnimi Java okviri, kot so Hibernate & Spring

Imate vprašanje za nas? Prosimo, omenite ga v oddelku za komentarje tega spletnega dnevnika »Java ArrayList« in v najkrajšem možnem času vas bomo kontaktirali.