Junior
Чӣ гуна мураккабияти ҷустуҷӯи унсури дар массив дар Swift?
sobes.tech AI
Ҷавоб аз AI
Ҳаҷми ҷустуҷӯи унсури дар массиви оддӣ (масалан, Array<Element>) дар Swift ба андозаи O(n) мерасад, ки дар он n шумораи унсурҳо дар массив аст. Ин ба он вобаста аст, ки дар ҳолати бадтарин, мумкин аст, ки ҳамаи унсурҳоро гузаронидан лозим ояд, то унсури лозимро пайдо кунем.
Аммо, агар массив ба тартиб дароварда шуда бошад, метавон истифода бурд, ҷустуҷӯи бинарӣ, ки дорои мураккабии O(log n) мебошад. Swift усули binarySearch-ро барои коллекияҳои ба тартиб дароварда пешниҳод мекунад.
Маслиҳат барои ҷустуҷӯи хаттӣ:
let array = [1, 5, 2, 8, 3]
let elementToFind = 8
for element in array {
if element == elementToFind {
// Унсур ёфт шуд
break
}
}
Маслиҳат барои ҷустуҷӯи бинарӣ дар массиви ба тартиб дароварда:
let sortedArray = [1, 2, 3, 5, 8]
let elementToFind = 5
if let index = sortedArray.firstIndex(where: { $0 == elementToFind }) {
// Унсур дар индекс ёфт шуд
}