Python.
Yksinkertaisen kasan luominen
The kasaa (iteroitava) :- Tätä toimintoa käytetään muuntaa iteroitava kasoksi tietorakenne. eli kasajärjestyksessä.
Python 3
# 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)))> |
>
>
Järjestä satunnaisesti sql:ssäLähtö
The created heap is : [1, 3, 9, 7, 5]>
Kohteiden lisääminen ja avaaminen tehokkaasti
- heappush(heap, ele) : Tätä toimintoa käytetään argumenteissa mainitun elementin lisäämiseen kasaan. The järjestystä säädetään niin, että kasan rakenne säilyy. heappop(heap) : Tätä toimintoa käytetään poistamaan ja palauttamaan pienin elementti kasasta. Järjestystä säädetään niin, että kasarakenne säilyy.
Python 3
js vaihto
# 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))> |
>
>Lähtö
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>
Liittäminen ja popping samanaikaisesti
- heappushpop(heap, ele):- Tämä toiminto yhdistää push- ja pop-toimintojen toiminnan yhteen lauseeseen, mikä lisää tehokkuutta. Kasajärjestys säilyy tämän toimenpiteen jälkeen. heapreplace(heap, ele) :- Tämä funktio myös lisää ja ponnahtaa elementtejä yhteen lauseeseen, mutta se eroaa yllä olevasta funktiosta. Tässä elementti poksataan ensin, sitten elementtiä työnnetään. eli työnnetty arvoa suurempi arvo voidaan palauttaa. heapreplace() palauttaa keon alun perin pienimmän arvon riippumatta työnnetystä elementistä, toisin kuin heappushpop().
Python 3
tekniikan edut ja haitat
# 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>))> |
>
>Lähtö
The popped item using heappushpop() is : 1 The popped item using heapreplace() is : 3>
Löydä Pythonin Heapin suurimmat ja pienimmät elementit
- nlargest(k, iterable, key = fun) : Tätä funktiota käytetään palauttamaan k suurinta elementtiä määritetystä iteroitavasta ja täyttämään avaimen, jos mainittu. nsmallest(k, iterable, key = fun) : Tätä funktiota käytetään palauttamaan k pienintä elementtiä määritetystä iteroitavasta ja täyttämään avaimen, jos mainittu.
Python 3
esimerkkejä mooren koneista
# 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))> |
>
>Lähtö
The 3 largest numbers in list are : [10, 9, 8] The 3 smallest numbers in list are : [1, 3, 4]>
Esimerkki:
Python 3
10 ml on kuinka paljon
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)> |
>
>Lähtö
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]>
Tämä ohjelma luo keon jonon käyttämällä Pythonin heapq-moduulia ja suorittaa erilaisia toimintoja, kuten luettelon muuntamisen kasaksi, uuden arvon lisäämisen kasaan, pienimmän elementin poistamisen keosta, n pienimmän ja n suurimman elementin hakemisen. kasa.
Huomautus että Pythonin heapq-moduuli tarjoaa toimintoja kasotoimintojen suorittamiseen paikan päällä oleville listoille luomatta erillistä tietorakennetta kasalle. Heapq-moduuli on tehokas ja helppokäyttöinen, joten se on suosittu valinta prioriteettijonojen ja muiden tietorakenteiden toteuttamiseen Pythonissa.
Keon jonon (tai heapq:n) käytön edut Pythonissa:
- Tehokas: Kekojono on erittäin tehokas tietorakenne prioriteettijonojen ja kasojen hallintaan Pythonissa. Se tarjoaa logaritmisen aikamonimutkaisuuden monille toiminnoille, joten se on suosittu valinta moniin sovelluksiin. Tilatehokas : Kekojonot ovat tilaa säästäviä, koska ne tallentavat elementtejä taulukkopohjaiseen esitykseen, mikä minimoi solmupohjaisiin tietorakenteisiin, kuten linkitettyihin listoihin, liittyvät lisäkustannukset. Helppokäyttöinen: Pythonin keon jonoja on helppo käyttää yksinkertaisen ja intuitiivisen API:n avulla, jonka avulla on helppo suorittaa perustoiminnot, kuten elementtien lisääminen, poistaminen ja noutaminen kasasta. Joustava: Pythonin keon jonoja voidaan käyttää erilaisten tietorakenteiden, kuten prioriteettijonojen, kasojen ja binääripuiden, toteuttamiseen, mikä tekee niistä monipuolisen työkalun moniin sovelluksiin.
Pythonissa kason jonon (tai heapq:n) käytön haitat:
- Rajoitettu toiminnallisuus : Kekojonot on ensisijaisesti suunniteltu prioriteettijonojen ja kasojen hallintaan, eivätkä ne välttämättä sovellu monimutkaisempiin tietorakenteisiin ja algoritmeihin. Ei satunnaiskäyttöä : Keon jonot eivät tue satunnaista pääsyä elementteihin, mikä vaikeuttaa keon keskellä olevien elementtien käyttöä tai elementtien muokkaamista, jotka eivät ole keon yläosassa. Ei lajittelua: Kekojonot eivät tue lajittelua, joten jos haluat lajitella elementtejä tiettyyn järjestykseen, sinun on käytettävä erilaista tietorakennetta tai algoritmia. Ei säikeistöä : Kekojonot eivät ole säikeen turvallisia, mikä tarkoittaa, että ne eivät välttämättä sovellu käytettäväksi monisäikeisissä sovelluksissa, joissa tietojen synkronointi on kriittistä.
Kaiken kaikkiaan kasajonot ovat erittäin tehokas ja joustava tietorakenne prioriteettijonojen ja kasojen hallintaan Pythonissa, mutta niillä voi olla rajoitettu toiminnallisuus, eivätkä ne välttämättä sovellu kaikkiin sovelluksiin.