Sobes.tech
Junior

რომელი ალგორითმი აქვს ლინეურქი სირთულე 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:

  1. 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
    
  2. 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ı
    }
    
  3. 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;
    }
    
  4. Sadə surət çıxarma: Orijinal massivin bütün elementlərini keçərək yeni surət yaratmaq.

  5. 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.