Quel algorithme a une complexité linéaire O(n) ?
sobes.tech IA
Réponse de l'IA
Un algorithme avec une complexité linéaire O(n) signifie que le temps d'exécution ou la mémoire utilisée croît proportionnellement à la taille des données d'entrée n. Voici quelques exemples de tels algorithmes :
-
Recherche du maximum ou du minimum dans un tableau : Il faut parcourir tous les éléments du tableau une fois.
# Recherche du maximum 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 -
Recherche linéaire : Recherche d'un élément spécifique dans une liste non triée par parcours séquentiel.
// Recherche linéaire public int linearSearch(int[] arr, int target) { for (int i = 0; i < arr.length; i++) { if (arr[i] == target) { return i; // Élément trouvé } } return -1; // Élément non trouvé } -
Comptage de la fréquence des éléments dans une liste : Pour cela, il faut parcourir la liste une fois, en utilisant par exemple une table de hachage ou un dictionnaire.
// Comptage de la fréquence des éléments function countFrequency(arr) { const frequency = {}; for (const element of arr) { frequency[element] = (frequency[element] || 0) + 1; } return frequency; } -
Copie simple d'un tableau : Création d'une nouvelle copie du tableau en parcourant tous les éléments du tableau original.
-
Calcul de la somme de tous les éléments dans un tableau : Nécessite de parcourir tous les éléments une fois.
Dans tous ces exemples, le nombre d'opérations est directement proportionnel au nombre d'éléments dans les données traitées.