顺序查找算法概述
顺序查找算法是在一个已知无序(或有序)队列中找出关键字相同的数的具体位置。
顺序查找算法原理
让关键字和队列中的数从最后一个开始逐个比较,直到找出与给定关键字相同的数为止。如果扫描结束已让没有找到关键字,表示查找失败。
顺序查找算法分析
时间复杂度:
平均:假设每个数据元素的概率相等 (n + 1)/2
查找不成功:n+1
复杂度:O(n)
实现
1、golang实现(元素为int类型版本)
package main
import (
"fmt"
)
func SeqSearch(values []int, key int) int {
if len(values) == 0 {
return -1
}
for i, val := range values {
v := val
ret := i
if v == key {
return ret
}
}
return -1
}
func main() {
values := []int{2, 4, 7, 5, 8, 1, 3, 6, 6}
fmt.Println(values)
index := SeqSearch(values, 5)
fmt.Println(index)
index = SeqSearch(values, 100)
fmt.Println(index)
return
}
结果
[2 4 7 5 8 1 3 6 6]
3
-1