Sobes.tech
Junior

Swiftda massivda elementni qidirish murakkabligi qanday?

sobes.tech AI

AIdan javob

Swift'da tipik bir tartibsiz massivda (masalan, Array<Element>) elementni topish murakkabligi O(n) bo'lib, bu massivdagi elementlar soni n ga teng. Bu, eng yomon holatda, barcha elementlarni tekshirish kerak bo'lishi mumkinligini anglatadi.

Ammo, agar massiv tartiblangan bo'lsa, binar qidiruvni ishlatish mumkin va bu murakkablik O(log n) ga teng. Swift tartiblangan kolleksiyalar uchun binarySearch metodini taqdim etadi.

Lineer qidiruv misoli:

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

for element in array {
    if element == elementToFind {
        // Element topildi
        break
    }
}

Tartiblangan massivda binar qidiruv misoli:

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

if let index = sortedArray.firstIndex(where: { $0 == elementToFind }) {
    // Element indeksda topildi
}