查找(顺序查找、者半查找、分块查找)

/*
    查找:
        顺序查找:
            顾名思义,按照一定顺序查找。适用于线性表的顺序存储结构和链式存储结构。查找的表内容越多,效率越低。对表中的元素存储没有任何要求。注意:线性链表,只能进行顺序查找。
        折半查找:
            表必须是有序,
        分块查找:
 */

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
}

你可能感兴趣的:(查找(顺序查找、者半查找、分块查找))