Junior
Který algoritmus má lineární složitost O(n)?
sobes.tech AI
Odpověď od AI
Algoritmus s lineární složitostí O(n) znamená, že doba běhu nebo používaná paměť roste úměrně velikosti vstupních dat n. Příklady takových algoritmů jsou:
-
Hledání maximálního nebo minimálního prvku v poli: Je třeba projít všechny prvky pole jednou.
# Hledání maximálního prvku 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 -
Lineární vyhledávání: Vyhledávání určitého prvku v neuspořádaném seznamu sekvenčním prohledáváním.
// Lineární vyhledávání public int linearSearch(int[] arr, int target) { for (int i = 0; i < arr.length; i++) { if (arr[i] == target) { return i; // Prvek nalezen } } return -1; // Prvek nenalezen } -
Počítání výskytu prvků v seznamu: K tomu je třeba projít seznam jednou, například pomocí hash tabulky nebo slovníku.
// Počítání výskytu function countFrequency(arr) { const frequency = {}; for (const element of arr) { frequency[element] = (frequency[element] || 0) + 1; } return frequency; } -
Jednoduché kopírování pole: Vytvoření nové kopie pole průchodem všemi prvky původního pole.
-
Výpočet součtu všech prvků v poli: Vyžaduje jednorázové projití všemi prvky.
Ve všech těchto příkladech je počet operací přímo úměrný počtu prvků zpracovávaných dat.