Sobes.tech
Junior — Middle

Կարող եք տալ տվյալների կառուցվածքներում տարրեր որոնելու ալգորիթմների օրինակներ?

sobes.tech AI

Պատասխան AI-ից

Տվյալների կառուցվածքներում տարրեր որոնելու համար հաճախ օգտագործվում են հետևյալ ալգորիթմները՝

  • Գծային որոնում (Linear Search) — տարրերը մեկ մեկով անցնել, հարմար է ոչ դասավորված զանգվածների համար:
  • Բինար որոնում (Binary Search) — արդյունավետ է դասավորված զանգվածների համար, յուրաքանչյուր քայլում որոնման տարածքը բաժանում է կեսին:
  • Որոնում ծառերում (օրինակ, բինար ծառի որոնում) — ռեկուրսիվ կամ ինտերատիվ անցում՝ տարր գտնելու համար:
  • Հեշ աղյուսակներում որոնում — արագ մուտք՝ բանալիով՝ հեշ-ֆունկցիայի միջոցով:

Ստորև բերված է բինար որոնման օրինակ Swift-ում:

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