Welkom op de Nederland Computer Kennisnetwerk!  
 
Zoeken computer kennis
Home Hardware Netwerken Programmering Software Computerstoring Besturingssysteem
Computer Kennis >> Programmering >> python Programming >> Content
Wat is de tijdscomplexiteit van de bewerking van ingestelde kruispunten in Python?
De tijdscomplexiteit van de set-kruisingbewerking in Python hangt af van de gebruikte methode en de grootte van de betrokken sets. Hier is een overzicht:

1. Gebruik de `&` operator of de `intersection()` methode:

* Gemiddeld geval: O(min(len(set1), len(set2)))

* In het ergste geval: O(n*m) waarbij n de lengte is van de ene set en m de lengte van de andere, maar dit is zeer onwaarschijnlijk.

Uitleg:

* Python's `set` wordt geïmplementeerd met behulp van een hashtabel. Het algoritme itereert in essentie door de kleinere set en controleert of elk element aanwezig is in de grotere set. De 'in'-operator op een set (controleert op lidmaatschap) neemt gemiddeld O(1) als gevolg van het opzoeken van de hashtabel.

* Daarom, als `set1` kleiner is, itereert het door `set1` en voert het voor elk element een hashtabelzoekopdracht uit in `set2`, wat resulteert in O(len(set1))-complexiteit. Dezelfde logica is van toepassing als `set2` kleiner is.

* Het ergste geval van O(n*m) zou zich voordoen als hash-botsingen hoogtij vieren, waardoor de ingestelde lookups van O(1) naar O(n) afnemen. Dit is zeer ongebruikelijk met de goede hash-algoritmen van Python.

2. Met behulp van de methode `intersection_update()` (intersectie op de plaats):

* Gemiddeld geval: O(len(set)) waarbij set de set is die wordt bijgewerkt.

* In het ergste geval: Hetzelfde als `intersection()` - onwaarschijnlijk O(n*m)

Uitleg:

`intersection_update()` wijzigt de set waarop deze wordt aangeroepen, waarbij elementen worden verwijderd die niet aanwezig zijn in de andere set(s). De tijdscomplexiteit is vergelijkbaar met die van `intersection()` omdat het lidmaatschap van de andere set(s) nog steeds moet worden gecontroleerd.

Voorbeeld:

```python

set1 ={1, 2, 3, 4, 5}

set2 ={3, 5, 6, 7, 8}

Kruispunt met &operator:

intersectie_set =set1 &set2

print(intersection_set) # Uitvoer:{3, 5}

Kruising met behulp van de intersection()-methode:

intersectie_set =set1.intersection(set2)

print(intersection_set) # Uitvoer:{3, 5}

Kruising met behulp van de intersection_update()-methode (wijzigt set1):

set1.intersection_update(set2)

print(set1) # Uitvoer:{3, 5}

```

Overzichtstabel:

| Werkwijze | Gemiddelde complexiteit van de tijd van een zaak | Worst Case Tijdcomplexiteit (onwaarschijnlijk) |

|-----------------------|----------------------------|---------------------------------|

| `&`-operator | O(min(len(set1), len(set2))) | O(n*m) |

| `kruispunt()` | O(min(len(set1), len(set2))) | O(n*m) |

| `intersection_update()` | O(len(set)) | O(n*m) |

Belangrijkste afhaalpunten: De set-intersectiebewerking in Python is over het algemeen zeer efficiënt, dankzij het gebruik van hashtabellen. Voor praktische doeleinden kun je er meestal van uitgaan dat het O(min(len(set1), len(set2))) is.

Previous: Next:
  python Programming
·Hoe maak je een Read tekstbest…
·Hoe maak je tijd in Python 
·Hoe te Strings Zet die achter …
·Hoe te converteren naar RGB HS…
·Hoe de lijst met tekens in Pyt…
·Hoe te Sleutels verwijderen ui…
·Hoe de gegevens in tabelvorm i…
·Hoe te XLS -bestanden manipule…
·Hoe je het adres van een varia…
  Related Articles
Waarom is een string onveranderlijk in p…
Welke rol speelt een tolk bij het progra…
Wat is de tijdscomplexiteit van priorite…
Wat is de tijdscomplexiteit van een if-i…
Wat is de syntaxis voor het weergeven va…
Wat is de betekenis van het gebruik van …
Wat is de betekenis van reguliere en nie…
Wat is de betekenis van intersectieconte…
Wat is de betekenis van het hash-symbool…
  Programmering Articles
·Hoe je Javascript inschakelen Debuggen 
·Hoe maak je een string converteren naar …
·Hoe aan bladwijzers in Word gebruiken 
·Hoe je Java 7 Installeer 
·Hoe maak je een Matrix gebruiken in Vb.N…
·Hoe te installeren Zend voor PHP 5.3 
·PHP Class var Functie 
·Hoe maak je een timer gebruiken in een V…
·Hoe kan ik een onveranderlijk object in …
Copyright © Computer Kennis https://www.nldit.com