Sobes.tech
Junior — Middle

Kuidas hinnata seotud nimekirja elemendi uuendamise operatsiooni algoritmilist keerukust?

sobes.tech AI

Vastus AI-lt

Seotud nimekirja elementi uuendamine nõuab tavaliselt esmalt selle elemendi leidmist ja seejärel selle väärtuse muutmist.

  • Kui teil on viit või viide vajaliku sõlme juurde, on väärtuse uuendamine O(1) operatsioon.
  • Kui peate esmalt leidma elemendi indeksi või väärtuse järgi, kestab otsing O(n), kus n on nimekirja elementide arv.

Dart (Flutter) näide:

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) uuendus
  }
}

Kokkuvõttes on indeksi järgi elemendi uuendamise üldine keerukus — O(n), kui otsest juurdepääsu sõlmele pole.