Welcher Algorithmus hat eine lineare Komplexität O(n)?
sobes.tech KI
Antwort von AI
Ein Algorithmus mit linearer Komplexität O(n) bedeutet, dass die Ausführungszeit oder der verwendete Speicher proportional zur Größe der Eingabedaten n wächst. Beispiele für solche Algorithmen sind:
-
Suche nach dem maximalen oder minimalen Element in einem Array: Es ist notwendig, alle Elemente des Arrays einmal zu durchlaufen.
# Suche nach dem maximalen Element 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 -
Lineare Suche: Suche nach einem bestimmten Element in einer ungeordneten Liste durch sequentielle Durchsuchung.
// Lineare Suche public int linearSearch(int[] arr, int target) { for (int i = 0; i < arr.length; i++) { if (arr[i] == target) { return i; // Element gefunden } } return -1; // Element nicht gefunden } -
Zählen der Häufigkeit von Elementen in einer Liste: Dafür muss die Liste einmal durchlaufen werden, z.B. mit einer Hashtabelle oder einem Wörterbuch.
// Zählen der Häufigkeit von Elementen function countFrequency(arr) { const frequency = {}; for (const element of arr) { frequency[element] = (frequency[element] || 0) + 1; } return frequency; } -
Einfache Kopie eines Arrays: Erstellen einer neuen Kopie des Arrays durch Durchlaufen aller Elemente des Originalarrays.
-
Berechnung der Summe aller Elemente im Array: Erfordert einmaliges Durchlaufen aller Elemente.
In all diesen Beispielen ist die Anzahl der Operationen direkt proportional zur Anzahl der Elemente in den verarbeiteten Daten.