Qual algoritmo tem uma complexidade linear O(n)?
sobes.tech IA
Resposta da IA
Um algoritmo com complexidade linear O(n) significa que o tempo de execução ou a memória utilizada crescem proporcionalmente ao tamanho dos dados de entrada n. Alguns exemplos desses algoritmos são:
-
Procura do elemento máximo ou mínimo num array: É necessário percorrer todos os elementos do array uma vez.
# Procura do elemento máximo def find_max(arr): if not arr: return None max_val = arr[0] for element in arr: if element > max_val: max_val = element return max_val -
Procura linear: Procura de um elemento específico numa lista não ordenada por busca sequencial.
// Procura linear public int linearSearch(int[] arr, int target) { for (int i = 0; i < arr.length; i++) { if (arr[i] == target) { return i; // Elemento encontrado } } return -1; // Elemento não encontrado } -
Contagem da frequência dos elementos numa lista: Para isso, é preciso percorrer a lista uma vez, usando por exemplo, uma tabela hash ou um dicionário.
// Contagem da frequência dos elementos function countFrequency(arr) { const frequency = {}; for (const element of arr) { frequency[element] = (frequency[element] || 0) + 1; } return frequency; } -
Cópia simples de um array: Criação de uma nova cópia do array percorrendo todos os elementos do array original.
-
Cálculo da soma de todos os elementos num array: Requer percorrer todos os elementos uma vez.
Em todos esses exemplos, a quantidade de operações é diretamente proporcional à quantidade de elementos nos dados processados.