Sobes.tech
Junior — Middle

Жалгыз байланыштуу тизмеге жаңы элемент кошуу убакыттык татаалдыгы кандай?

sobes.tech AI

AIден жооп

Жаңы элементти бирдиктүү тизмеге кошуу убакыттык татаалдыгы тизмеде акыркы элементке (уч) көрсөткүч бар-жогунан көз каранды.

  • Эгер учка көрсөткүч болсо, кошуу O(1) убакытта болот, анткени түз эле акыркы элементке жетип, жаңы элементти кошсо болот.
  • Эгер көрсөткүч жок болсо, бардык тизмени баштан аякка чейин өтүш керек, бул убакыт O(n), анда n — тизмедеги элементтердин саны.

Учка көрсөткүч менен мисал:

class Node {
    var value: Int
    var next: Node?
    init(value: Int) {
        self.value = value
    }
}

class LinkedList {
    var head: Node?
    var tail: Node?

    func append(_ value: Int) {
        let newNode = Node(value: value)
        if let tailNode = tail {
            tailNode.next = newNode
        } else {
            head = newNode
        }
        tail = newNode
    }
}

Бул жерде кошуу убакыт боюнча туруктуу — O(1).