რომელი ალგორითმი აქვს ლინეურქი სირთულე O(n)?
sobes.tech AI
პასუხი AI-სგან
Lineár mürəkkəbliyi O(n) olan algoritm, icra vaxtının və ya istifadə olunan yaddaşın giriş məlumatlarının n ölçüsü ilə proporsional şəkildə artması deməkdir. Belə algoritmlərə nümunələr:
-
Massivdə maksimum və ya minimum elementi tapmaq: Bu üçün massivdəki bütün elementlərdən bir dəfə keçmək lazımdır.
# Maksimum elementi tapmaq 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 -
Xətti axtarış: Təşkil olunmamış siyahıda müəyyən bir elementi ardıcıl yoxlama yolu ilə tapmaq.
// Xətti axtarış public int linearSearch(int[] arr, int target) { for (int i = 0; i < arr.length; i++) { if (arr[i] == target) { return i; // Element tapıldı } } return -1; // Element tapılmadı } -
Siyahıdakı elementlərin tezliyini saymaq: Bunun üçün siyahını bir dəfə keçmək, məsələn, hash cədvəli və ya sözlük istifadə etmək lazımdır.
// Tezlik sayımı function countFrequency(arr) { const frequency = {}; for (const element of arr) { frequency[element] = (frequency[element] || 0) + 1; } return frequency; } -
Sadə surət çıxarma: Orijinal massivin bütün elementlərini keçərək yeni surət yaratmaq.
-
Bütün elementlərin cəmını hesablamaq: Bu, bütün elementləri bir dəfə keçməyi tələb edir.
Bütün bu nümunələrdə əməliyyatların sayı işlənən məlumatların element sayına birbaşa proporsionaldır.