Sobes.tech
Junior — Middle

Sıralanmış bir dizide öğeyi hızlıca bulmak için hangi yöntemler kullanılabilir ve zaman maliyetini nasıl minimize edebilirsiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Sıralanmış bir dizide öğeyi hızlıca bulmak için genellikle ikili arama algoritması kullanılır. Bu, çalışma süresini O(log n) seviyesine indirir, burada n dizi boyutudur.

İkili arama fikri:

  • Aranan öğeyi dizinin ortasındaki öğeyle karşılaştırın.
  • Eğer eşitse, öğe bulunmuştur.
  • Eğer aranan öğe daha küçükse, sol yarıda aramayı tekrar edin.
  • Daha büyükse, sağ yarıda aramayı tekrar edin.

iOS (Swift) üzerinde binarySearch metodunu kullanabilir veya kendiniz uygulayabilirsiniz.

Swift'te örnek:

func binarySearch<T: Comparable>(_ array: [T], target: T) -> Int? {
    var low = 0
    var high = array.count - 1
    while low <= high {
        let mid = (low + high) / 2
        if array[mid] == target {
            return mid
        } else if array[mid] < target {
            low = mid + 1
        } else {
            high = mid - 1
        }
    }
    return nil
}

let sortedArray = [1, 3, 5, 7, 9]
if let index = binarySearch(sortedArray, target: 5) {
    print("Öğe konumu \(index) olarak bulundu")
} else {
    print("Öğe bulunamadı")
}