Milline algoritm on lineaarse keerukusega O(n)?
sobes.tech AI
Vastus AI-lt
Algoritm, mille ajutine keerukus O(n), tähendab, et täitmise aeg või kasutatud mälu kasvab proportsionaalselt sisendandmete suurusega n. Sellised algoritmid on näiteks:
-
Maksimaalse või minimaalse elemendi otsimine massiivis: Tuleb läbi käia kõik massiivi elemendid ühe korra.
# Maksimaalse elemendi otsimine 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 -
Jooneline otsing: Kindla elemendi otsimine korrapäratus nimekirjas, kontrollides järjest iga elementi.
// Jooneline otsing public int linearSearch(int[] arr, int target) { for (int i = 0; i < arr.length; i++) { if (arr[i] == target) { return i; // Element leitud } } return -1; // Elementi ei leitud } -
Elementide sageduse arvutamine nimekirjas: Selleks tuleb läbi käia nimekiri ühe korra, kasutades näiteks hajemälu või sõnastikku.
// Sageduse arvutamine function countFrequency(arr) { const frequency = {}; for (const element of arr) { frequency[element] = (frequency[element] || 0) + 1; } return frequency; } -
Lihtne massiivi kopeerimine: Uue massiivi loomine, läbides algse massiivi kõik elemendid.
-
Kõigi elementide summa arvutamine massiivis: Nõuab ühekordset läbimist kõigi elementide üle.
Kõigil neil näidetel on operatsioonide arv otseselt proportsionaalne töödeldavate andmete elementide arvuga.