logo

Čakalna vrsta kopice (ali heapq) v Pythonu

Python .

Ustvarjanje preprostega kupa

The heapify (iterable) :- Ta funkcija se uporablja za pretvori iterable v kopico struktura podatkov. torej v kopičnem vrstnem redu.



Python3






ime izdelkov za ličenje

# importing 'heapq' to implement heap queue> import> heapq> # initializing list> li>=> [>5>,>7>,>9>,>1>,>3>]> # using heapify to convert list into heap> heapq.heapify(li)> # printing created heap> print> (>'The created heap is : '>,(>list>(li)))>



>

>

Izhod

The created heap is : [1, 3, 9, 7, 5]>

Učinkovito dodajanje in izstopanje elementov

    heappush(heap, ele) : Ta funkcija se uporablja za vstavljanje elementa, omenjenega v njegovih argumentih, v kopico. The vrstni red je prilagojen, tako da se ohrani struktura kopice. heappop(heap) : Ta funkcija se uporablja za odstranitev in vrnitev najmanjšega elementa iz kopice. Vrstni red je prilagojen, tako da se ohrani struktura kopice.

Python3




markdown slike
# importing 'heapq' to implement heap queue> import> heapq> # initializing list> li>=> [>5>,>7>,>9>,>1>,>3>]> # using heapify to convert list into heap> heapq.heapify(li)> # printing created heap> print>(>'The created heap is : '>, end>=>'')> print>(>list>(li))> # using heappush() to push elements into heap> # pushes 4> heapq.heappush(li,>4>)> # printing modified heap> print>(>'The modified heap after push is : '>, end>=>'')> print>(>list>(li))> # using heappop() to pop smallest element> print>(>'The popped and smallest element is : '>, end>=>'')> print>(heapq.heappop(li))>

>

>

Izhod

The created heap is : [1, 3, 9, 7, 5] The modified heap after push is : [1, 3, 4, 7, 5, 9] The popped and smallest element is : 1>

Pripenjanje in izstopanje istočasno

    heappushpop(heap, ele) :- Ta funkcija združuje delovanje tako potiskanja kot izpiranja v enem stavku, kar povečuje učinkovitost. Vrstni red kopice se po tej operaciji ohrani. heapreplace(heap, ele) :- Ta funkcija prav tako vstavi in ​​izloči elemente v enem stavku, vendar se razlikuje od zgornje funkcije. Pri tem se element najprej izstreli, nato se element potisne. to pomeni, da je mogoče vrniti vrednost, ki je večja od potisnjene vrednosti. heapreplace() vrne najmanjšo prvotno vrednost v kopici ne glede na potisnjeni element v nasprotju s heappushpop().

Python3




kako združiti nize v Javi

# importing 'heapq' to implement heap queue> import> heapq> # initializing list 1> li1>=> [>5>,>1>,>9>,>4>,>3>]> # initializing list 2> li2>=> [>5>,>7>,>9>,>4>,>3>]> # using heapify() to convert list into heap> heapq.heapify(li1)> heapq.heapify(li2)> # using heappushpop() to push and pop items simultaneously> # pops 2> print>(>'The popped item using heappushpop() is : '>, end>=>'')> print>(heapq.heappushpop(li1,>2>))> # using heapreplace() to push and pop items simultaneously> # pops 3> print>(>'The popped item using heapreplace() is : '>, end>=>'')> print>(heapq.heapreplace(li2,>2>))>

>

>

Izhod

The popped item using heappushpop() is : 1 The popped item using heapreplace() is : 3>

Poiščite največji in najmanjši element iz Heap v Pythonu

    nlargest(k, iterable, key = fun) : Ta funkcija se uporablja za vrnitev k največjih elementov iz navedene iterable in za izpolnitev ključa, če je omenjen. nsmallest(k, iterable, key = fun) : Ta funkcija se uporablja za vrnitev k najmanjših elementov iz podane iterable in izpolnjevanje ključa, če je omenjen.

Python3




vse velike črke bližnjica excel

# Python code to demonstrate working of> # nlargest() and nsmallest()> # importing 'heapq' to implement heap queue> import> heapq> # initializing list> li1>=> [>6>,>7>,>9>,>4>,>3>,>5>,>8>,>10>,>1>]> # using heapify() to convert list into heap> heapq.heapify(li1)> # using nlargest to print 3 largest numbers> # prints 10, 9 and 8> print>(>'The 3 largest numbers in list are : '>, end>=>'')> print>(heapq.nlargest(>3>, li1))> # using nsmallest to print 3 smallest numbers> # prints 1, 3 and 4> print>(>'The 3 smallest numbers in list are : '>, end>=>'')> print>(heapq.nsmallest(>3>, li1))>

>

>

Izhod

The 3 largest numbers in list are : [10, 9, 8] The 3 smallest numbers in list are : [1, 3, 4]>

primer:

Python3




java char v celo število

import> heapq> # Initialize a list with some values> values>=> [>5>,>1>,>3>,>7>,>4>,>2>]> # Convert the list into a heap> heapq.heapify(values)> # Print the heap> print>(>'Heap:'>, values)> # Add a new value to the heap> heapq.heappush(values,>6>)> # Print the updated heap> print>(>'Heap after push:'>, values)> # Remove and return the smallest element from the heap> smallest>=> heapq.heappop(values)> # Print the smallest element and the updated heap> print>(>'Smallest element:'>, smallest)> print>(>'Heap after pop:'>, values)> # Get the n smallest elements from the heap> n_smallest>=> heapq.nsmallest(>3>, values)> # Print the n smallest elements> print>(>'Smallest 3 elements:'>, n_smallest)> # Get the n largest elements from the heap> n_largest>=> heapq.nlargest(>2>, values)> # Print the n largest elements> print>(>'Largest 2 elements:'>, n_largest)>

>

>

Izhod

Heap: [1, 4, 2, 7, 5, 3] Heap after push: [1, 4, 2, 7, 5, 3, 6] Smallest element: 1 Heap after pop: [2, 4, 3, 7, 5, 6] Smallest 3 elements: [2, 3, 4] Largest 2 elements: [7, 6]>

Ta program ustvari čakalno vrsto kopice z uporabo modula heapq v Pythonu in izvaja različne operacije, kot je pretvorba seznama v kopico, dodajanje nove vrednosti kopici, odstranjevanje najmanjšega elementa iz kopice, pridobivanje n najmanjših in n največjih elementov iz kup.

Opomba da modul heapq v Pythonu zagotavlja funkcije za izvajanje operacij kopice na seznamih na mestu, brez ustvarjanja ločene podatkovne strukture za kopico. Modul heapq je učinkovit in enostaven za uporabo, zaradi česar je priljubljena izbira za izvajanje prednostnih čakalnih vrst in drugih podatkovnih struktur v Pythonu.

Prednosti uporabe čakalne vrste kopice (ali heapq) v Pythonu:

    Učinkovito : Čakalna vrsta kopice je zelo učinkovita podatkovna struktura za upravljanje prednostnih čakalnih vrst in kopic v Pythonu. Zagotavlja logaritemsko časovno kompleksnost za številne operacije, zaradi česar je priljubljena izbira za številne aplikacije. Prostorsko učinkovito : čakalne vrste kopice so prostorsko učinkovite, saj shranjujejo elemente v predstavitvi, ki temelji na matriki, kar zmanjšuje stroške, povezane s podatkovnimi strukturami, ki temeljijo na vozliščih, kot so povezani seznami. Enostaven za uporabo : Čakalne vrste kopice v Pythonu so enostavne za uporabo, s preprostim in intuitivnim API-jem, ki olajša izvajanje osnovnih operacij, kot so vstavljanje, brisanje in pridobivanje elementov iz kopice. Prilagodljivo : Čakalne vrste kopice v Pythonu se lahko uporabljajo za implementacijo različnih podatkovnih struktur, kot so prednostne čakalne vrste, kopice in binarna drevesa, zaradi česar so vsestransko orodje za številne aplikacije.

Slabosti uporabe čakalne vrste kopice (ali heapq) v Pythonu:

    Omejena funkcionalnost : čakalne vrste kopice so zasnovane predvsem za upravljanje prednostnih čakalnih vrst in kopic in morda niso primerne za bolj zapletene podatkovne strukture in algoritme. Brez naključnega dostopa : Čakalne vrste kopice ne podpirajo naključnega dostopa do elementov, zaradi česar je težko dostopati do elementov na sredini kopice ali spreminjati elemente, ki niso na vrhu kopice. Brez razvrščanja: čakalne vrste kopice ne podpirajo razvrščanja, zato boste morali, če boste morali elemente razvrstiti v določenem vrstnem redu, uporabiti drugo podatkovno strukturo ali algoritem. Ni varno za niti : Čakalne vrste kopice niso varne za niti, kar pomeni, da morda niso primerne za uporabo v večnitnih aplikacijah, kjer je sinhronizacija podatkov kritična.

Na splošno so čakalne vrste kopice zelo učinkovita in prilagodljiva podatkovna struktura za upravljanje prednostnih čakalnih vrst in kopic v Pythonu, vendar imajo lahko omejeno funkcionalnost in morda niso primerne za vse aplikacije.