Sobes.tech
Junior — Middle

Qoşulmuş siyahıda elementin yenilənməsi əməliyyatının algoritmik mürəkkəbliyini necə qiymətləndirmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

Əlaqəli siyahıda elementin yenilənməsi adətən əvvəlcə həmin elementi tapmağı və sonra onun dəyərini dəyişməyi tələb edir.

  • Əgər sizdə lazım olan düyün üçün göstərici və ya istinad varsa, dəyəri yeniləmək O(1) əməliyyatdır.
  • Əgər əvvəlcə elementi indeks və ya dəyərə görə tapmaq lazımdırsa, axtarış O(n) vaxt alır, burada n siyahıdakı elementlərin sayıdır.

Dart (Flutter) nümunəsi:

class Node {
  int value;
  Node? next;

  Node(this.value);
}

void updateNodeValue(Node head, int index, int newValue) {
  Node? current = head;
  int i = 0;
  while (current != null && i < index) {
    current = current.next;
    i++;
  }
  if (current != null) {
    current.value = newValue; // O(1) yeniləmə
  }
}

Ümumilikdə, indeksə görə elementin yenilənməsinin ümumi mürəkkəbliyi — O(n), əgər düyünə birbaşa giriş yoxdursa.