Sobes.tech
Junior — Middle

Кадом усулҳоро метавон барои ҷустуҷӯи зудтари унсур дар массиви ба тартиб дароварда истифода бурд, бо кам кардани вақти харҷшуда?

sobes.tech AI

Ҷавоб аз AI

Бинари ҷустуҷӯ алгоритми одатан барои зуд пайдо кардани унсури дар массиви сартарошуда истифода мешавад. Он вақти ҷустуҷӯро кам мекунад, зеро дар вақти O(log n) кор мекунад, ки дар он n андозаи массив мебошад.

Ойин идеяи бинари ҷустуҷӯ:

  • Унсури ҷустуҷударо бо унсури дар маркази массив муқоиса кунед.
  • Агар онҳо баробар бошанд, унсур ёфт шуд.
  • Агар унсури ҷустуҷудо хурд бошад, дар ними чап ҷустуҷӯро такрор кунед.
  • Агар калон бошад, дар ними рост.

Дар iOS (Swift) метавонед усули binarySearch-ро истифода баред ё онро худатон иҷро кунед.

Масалан дар Swift:

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("Элемент дар ҷойгиршавӣ \(index) ёфт шуд")
} else {
    print("Элемент ёфт нашуд")
}