Junior — Middle
Bağlı listenin bir öğesini güncelleme işleminin algoritmik karmaşıklığını nasıl değerlendirilir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Bağlantılı listede bir öğeyi güncellemek genellikle önce bu öğeyi bulmayı ve ardından değerini değiştirmeyi gerektirir.
- Eğer ihtiyaç duyulan düğüme işaretçi veya referansınız varsa, değeri güncelleme işlemi O(1) dir.
- Eğer önce indeks veya değer ile öğeyi bulmanız gerekiyorsa, arama O(n) sürer, burada n listedeki öğe sayısıdır.
Dart (Flutter) örneği:
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) güncelleme
}
}
Toplamda, indeksle öğe güncellemenin toplam karmaşıklığı — O(n), eğer düğüme doğrudan erişim yoksa.