Hvor kan jeg finne tid og rom kompleksiteten av innebygde sekvenstyper i Python

stemmer
16

Jeg har ikke vært i stand til å finne en kilde for denne informasjonen, kort av å se gjennom Python kildekoden meg selv for å finne ut hvordan objektene fungerer. Vet noen hvor jeg kan finne dette på nettet?

Publisert på 05/09/2008 klokken 04:27
kilden bruker
På andre språk...                            


3 svar

stemmer
18

Kassa TimeComplexity side på py dot org wiki. Den dekker sett / dicts / lister / etc minst like langt som tiden kompleksitet går.

Svarte 05/09/2008 kl. 16:19
kilden bruker

stemmer
14

Raymond D. Hettinger gjør en utmerket diskusjon ( lysbilder ) om Python innebygde samlinger kalt 'Kjerne Python Containere - Under the Hood'. Den versjonen jeg så fokusert hovedsakelig på setog dict, men listvar dekket også.

Det er også noen bilder av de aktuelle lysbilder fra EuroPython i en blogg .

Her er en oppsummering av mine notater på list:

  • Butikker elementer som en rekke pekere. Senket koster O (1) tid. Føye til kostnader amortiseres O (1) tid. Sett kostnader O (n) tid.
  • Prøver å unngå memcpynår det vokser med over-allokering. Mange små listene vil kaste bort mye plass, men store lister aldri kaste bort mer enn ca 12,5% til overallocation.
  • Noen operasjoner pre-størrelse. Eksemplene gitt var range(n), map(), list(), [None] * n, og kutting.
  • Når krymper, blir matrisen realloced kun når det er å sløse 50% av plass. poper billig.
Svarte 05/09/2008 kl. 11:04
kilden bruker

stemmer
2

Hvis du spør hva jeg tror din spør, kan du finne dem her ... side 476 og videre.

Det er skrevet rundt optimalisering teknikker for Python; Det er stort sett Big-O notasjon av tidseffektivitet ikke mye minne.

Svarte 05/09/2008 kl. 04:52
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more