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.