Sobes.tech
Middle

Heap push чӣ мекунад ва чӣ гуна унсурро ба кӯпча илова мекунад?

sobes.tech AI

Ҷавоб аз AI

Heap push — ин амалияи илова кардани ун element нав ба структураи маълумоти «купа» (heap), ки хосиятҳои купаро нигоҳ медорад (масалан, ҳадди ақал ё ҳадди максимум).

Чӣ гуна амалӣ мешавад илова:

  1. Элемент нав ба охири массив, ки намояндагии купаро аст, гузошта мешавад.
  2. Сипас, амалиёт "сӯзондан ба боло" (sift-up ё bubble-up) иҷро мешавад: элемент бо падари худ муқоиса карда мешавад, ва агар хосияти купа вайрон шавад (масалан, дар мин-купа, агар элемент хурдтар аз падар бошад), элементҳо ҷой ба ҷой мегузаранд.
  3. Ин раванд такрор мешавад, то ки элемент дар ҷойи дуруст қарор гирад, ва хосиятҳои купа барқарор мешаванд.

Ин тариқ, heap push таъмин мекунад, ки элемент бо нигоҳ доштани тартиби купа илова карда мешавад, ки имкон медиҳад, ки элементҳои ҳадди ақал ё ҳадди максимум самаранок хориҷ карда шаванд.

Масалан дар Python бо истифодаи модул heapq:

import heapq

heap = [1, 3, 5, 7]
heapq.heapify(heap)  # Табдил додани рӯйхат ба купа

heapq.heappush(heap, 2)  # Илова кардани 2
print(heap)  # Купа бо тартиби нигоҳ дошта

Натиҷа, ки элемент 2 илова мешавад ва "сӯзондан ба боло" мешавад, то хосиятҳои мин-купа нигоҳ дошта шаванд.