Sobes.tech
Junior

Koja je složenost pretraživanja elementa u nizu u Swift-u?

sobes.tech АИ

Одговор од АИ

Сложеност потраге за елемент у типичном неуређеном низу (на пример, Array<Element>) у Swift-у износи O(n), где је n број елемената у низу. Ово је због тога што у најгорем случају може бити потребно прегледати све елементе низа да би се пронашао тражени елемент.

Међутим, ако је низ сортиран, може се користити бинарна претрага, која има сложеност O(log n). Swift пружа методу binarySearch за сортиране колекције.

Пример линеране претраге:

let array = [1, 5, 2, 8, 3]
let elementToFind = 8

for element in array {
    if element == elementToFind {
        // Елемент пронађен
        break
    }
}

Пример бинарне претраге у сортираном низу:

let sortedArray = [1, 2, 3, 5, 8]
let elementToFind = 5

if let index = sortedArray.firstIndex(where: { $0 == elementToFind }) {
    // Елемент пронађен на индексу
}