第四章 查找与哈希

作者: Qiuo 分类: 数据结构 发布时间: 2020-04-02 16:35

常见查找算法

查找分为动态查找静态查找
动态查找
在查找的过程中经常性添加,删除或更新,比如上网查找
静态查找
在查找的过程中不会添加,删除或更新,比如符号查找

顺序查找

将数据一项一项按顺序逐个查找,不管数据顺序如何,都从头到尾遍历一遍
优点
查找前不需要任何处理或排序
缺点
查找速度较慢
#顺序查找
import random
val = 0
data = [0] * 80
for i in range(80):
    data[i] = random.randint(1, 150)
while val != -1:
    find = 0
    val = int(input("请输入查找键值(1-150),输入-1离开"))
    for i in range(80):
        if data[i] == val:
            print("在第%3d个位置找到键值[%3d]" % (i+1, data[i]))
            find += 1
    if find == 0 and val != -1:
        print("没有找到[%3d]" % val)
print("数据内容为:")
for i in range(10):
    for j in range(8):
        print("%2d[%3d]" % (i*8+j+1, data[i*8+j]), end="")
    print("")
#运行结果
# 请输入查找键值(1-150),输入-1离开87
# 没有找到[ 87]
# 请输入查找键值(1-150),输入-1离开86
# 在第 57个位置找到键值[ 86]
# 请输入查找键值(1-150),输入-1离开-1
# 数据内容为:
# 1[ 53] 2[ 96] 3[ 36] 4[116] 5[130] 6[ 62] 7[ 9] 8[ 80]
# 9[ 5]10[121]11[ 92]12[131]13[ 46]14[106]15[138]16[ 2]
# 17[ 84]18[109]19[ 68]20[ 88]21[ 39]22[ 7]23[ 73]24[127]
# 25[ 79]26[ 64]27[123]28[ 69]29[ 56]30[ 51]31[ 32]32[ 43]
# 33[133]34[ 70]35[116]36[112]37[ 33]38[ 12]39[ 36]40[ 7]
# 41[ 41]42[ 20]43[148]44[ 88]45[106]46[ 50]47[ 14]48[ 42]
# 49[110]50[ 62]51[ 67]52[ 51]53[ 64]54[ 82]55[150]56[ 60]
# 57[ 86]58[ 72]59[121]60[ 78]61[ 33]62[ 45]63[100]64[ 2]
# 65[133]66[116]67[ 72]68[127]69[ 17]70[140]71[101]72[ 38]
# 73[114]74[129]75[ 32]76[ 41]77[ 45]78[ 64]79[123]80[ 71]
标签云