Junior — Middle
Оё метавонед мисолҳои алгоритмҳо барои ҷустуҷӯи унсурҳо дар структураҳои додаҳоро диҳед?
sobes.tech AI
Ҷавоб аз AI
Барои ҷустуҷӯи элементҳо дар сохторҳои додаҳо, одатан алгоритмҳои зерин истифода мешаванд:
- Ҷустуҷӯи хаттӣ (Linear Search) — гузаронидани элементҳо яке по дигар, барои массивҳои номуайян мувофиқ аст.
- Ҷустуҷӯи дугона (Binary Search) — барои массивҳои ба тартиб дароварда, самаранок аст, ҳар қадам минтақаи ҷустуҷро ба ду тақсим мекунад.
- Ҷустуҷӯи дар дарахтҳо (масалан, дар дарахти дугонаи ҷустуҷӯ) — гузариши рекурсивӣ ё итеративӣ барои ёфтани элемент.
- Ҷустуҷӯи дар таблицаҳои ҳеш (hash tables) — дастрасии зуд тавассути калид бо истифода аз функсияи ҳеш.
Маслиҳат барои ҷустуҷӯи дугона дар 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
}