Middle
Heap push чӣ мекунад ва чӣ гуна унсурро ба кӯпча илова мекунад?
sobes.tech AI
Ҷавоб аз AI
Heap push — ин амалияи илова кардани ун element нав ба структураи маълумоти «купа» (heap), ки хосиятҳои купаро нигоҳ медорад (масалан, ҳадди ақал ё ҳадди максимум).
Чӣ гуна амалӣ мешавад илова:
- Элемент нав ба охири массив, ки намояндагии купаро аст, гузошта мешавад.
- Сипас, амалиёт "сӯзондан ба боло" (sift-up ё bubble-up) иҷро мешавад: элемент бо падари худ муқоиса карда мешавад, ва агар хосияти купа вайрон шавад (масалан, дар мин-купа, агар элемент хурдтар аз падар бошад), элементҳо ҷой ба ҷой мегузаранд.
- Ин раванд такрор мешавад, то ки элемент дар ҷойи дуруст қарор гирад, ва хосиятҳои купа барқарор мешаванд.
Ин тариқ, heap push таъмин мекунад, ки элемент бо нигоҳ доштани тартиби купа илова карда мешавад, ки имкон медиҳад, ки элементҳои ҳадди ақал ё ҳадди максимум самаранок хориҷ карда шаванд.
Масалан дар Python бо истифодаи модул heapq:
import heapq
heap = [1, 3, 5, 7]
heapq.heapify(heap) # Табдил додани рӯйхат ба купа
heapq.heappush(heap, 2) # Илова кардани 2
print(heap) # Купа бо тартиби нигоҳ дошта
Натиҷа, ки элемент 2 илова мешавад ва "сӯзондан ба боло" мешавад, то хосиятҳои мин-купа нигоҳ дошта шаванд.