Sobes.tech
Junior

Swift'te bir dizide öğe aramanın karmaşıklığı nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Swift'te tipik bir sıralanmamış dizide (örneğin, Array<Element>) bir öğeyi bulmanın karmaşıklığı O(n) olup, burada n dizideki öğe sayısıdır. Bu, en kötü durumda tüm diziyi taramanın gerekebileceği anlamına gelir.

Ancak, dizi sıralanmışsa, ikili arama kullanılabilir ve bu, O(log n) karmaşıklığa sahiptir. Swift, sıralanmış koleksiyonlar için binarySearch yöntemini sağlar.

Doğrudan arama örneği:

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

for element in array {
    if element == elementToFind {
        // Öğe bulundu
        break
    }
}

Sıralı dizide ikili arama örneği:

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

if let index = sortedArray.firstIndex(where: { $0 == elementToFind }) {
    // Öğe dizide bulundu
}