Programação  
 
Rede de conhecimento computador >> Programação >> Programação Python >> Content
Qual é a complexidade do tempo da operação de interseção nos conjuntos de python?
A complexidade do tempo da operação de interseção nos conjuntos de python, usando o operador `&` ou o método` interseção () `, é o (min (len (s1), len (s2))) Em média, onde `s1` e` s2` são os conjuntos que estão sendo cruzados.

Aqui está o porquê:

* Implementação: Os conjuntos de Python são implementados usando tabelas de hash. Isso permite pesquisas muito rápidas (em média, O (1)).
* Processo de interseção: A operação de interseção itera essencialmente através do conjunto menor e verifica se existe cada elemento no conjunto maior.
* Custo da pesquisa: A verificação da existência de um elemento no conjunto maior é, em média, uma operação O (1) devido à implementação da tabela de hash.

Portanto, se `s1` for o conjunto menor, a operação itera através de` s1` (len (s1) vezes) e executa uma pesquisa o (1) em `s2` para cada elemento. Isso resulta em uma complexidade total de tempo de O (Len (S1) * 1) =O (Len (S1)). Da mesma forma, se `s2` for menor, a complexidade é O (Len (S2)). Assim, a complexidade geral é O (min (LEN (S1), LEN (S2))).

Cenário de pior caso:

Enquanto o caso médio é O (min (LEN (S1), LEN (S2))), o pior cenário é O (Len (S1) * Len (S2)) se houver muitas colisões de hash, levando a pesquisas O (n) em vez de O (1). No entanto, isso é raro na prática com o hash bem projetado de Python.

Exemplo:

`` `Python
set1 ={1, 2, 3, 4, 5}
set2 ={3, 5, 6, 7, 8, 9, 10}

intersection_set =set1 &set2 # ou set1.intersection (set2)
Print (Intersection_set) # Saída:{3, 5}
`` `

Neste exemplo, a complexidade do tempo da operação de interseção estaria mais próxima de O (Len (set1)) porque `set1` é menor.

Anterior :

Próximo :
  Os artigos relacionados
·Como escrever um script Python para Blender 
·Como converter RGB para HSL em Python 
·Função Python Propriedade 
·Como fazer um Keylogger em Python 
·Como classificar um dicionário em Python pelos valores…
·Como formatar Flutua em Python 
·Como verificar o Dicionário Correspondência exata em …
·Como o MPC 1000 funciona com Fruity Loops 9? 
·Como controlar alterações em Python e Django 
·Como Chegar saída de um comando Shell em Python 
  Artigos em destaque
·Como configurar o Java Heap 
·Como calcular um perímetro do retângulo em Java 
·Como desativar o JavaScript no DuckDuckGo 
·Como usar o método SearchEx em VB6 
·Como criar site Fundos 
·Como enviar dados de formulário HTML para um arquivo d…
·Como fazer o primeiro caractere de uma string em Caps e…
·Tutorial Visual Basic em caixas de seleção 
·Como criar um aplicativo Android no Eclipse 
·Como compilar Visual Basic 6.0 
Cop e direita © Rede de conhecimento computador https://ptcomputador.com Todos os Direitos Reservados