查找(顺序查找、者半查找、分块查找)
2017-03-14 本文已影响106人
GA_
/*
查找:
顺序查找:
顾名思义,按照一定顺序查找。适用于线性表的顺序存储结构和链式存储结构。查找的表内容越多,效率越低。对表中的元素存储没有任何要求。注意:线性链表,只能进行顺序查找。
折半查找:
表必须是有序,
分块查找:
*/
func binarySearch(_ arr: [Int], _ item: Int) -> Int {
var a = arr
var low = 0
var high = a.count
var flag = 0
var mid = 0
while low <= high {
mid = (low + high) / 2
if item < a[mid] {
high = mid - 1
} else if item > a[mid] {
low = mid + 1
} else {
flag = mid
break
}
}
return flag
}