资源简介 (共17张PPT)数据查找选修一:数据结构查找顺序查找顺序查找顺序查找, 叫“线性查找”,通常 于线性表。算法思想:从头到 尾 挨个找(或者反过来也OK)0 1 2 3 4 5 6 7d 25 22 13 18 14 11 17 19key 180 1 2 3 4 5 6 7d 25 22 13 18 14 11 17 19key 15找到未找到顺序查找程序实现def seq_search(s,a):length=len(s)flag=Falsefor i in range(0,length):if s[i]==a:flag=Truebreakif flag==True:return ielse:return False二分查找二分查找0 1 2 3 4 5 6 7 8d 7 10 13 16 19 29 32 33 37High=len(d)-1low=0mid=(low+high)/2key 2929>mid,所以只能在右边查找low=mid+1二分查找又称折半查找,仅适用于有序表二分查找0 1 2 3 4 5 6 7 8d 7 10 13 16 19 29 32 33 37Highlowmid=(low+high)/2key 2929high=mid-1二分查找又称折半查找,仅适用于有序表二分查找0 1 2 3 4 5 6 7 8d 7 10 13 16 19 29 32 33 37Highlowkey 29二分查找又称折半查找,仅适用于有序表mid=(low+high)/229=mid,查找成功二分查找0 1 2 3 4 5 6 7 8d 7 10 13 16 19 29 32 33 37High=len(d)-1low=0mid=(low+high)/2key 1212high=mid-1二分查找又称折半查找,仅适用于有序表二分查找0 1 2 3 4 5 6 7 8d 7 10 13 16 19 29 32 33 37Highlowmid=(low+high)/2key 1212>mid,所以只能在右边查找low=mid+1二分查找又称折半查找,仅适用于有序表二分查找0 1 2 3 4 5 6 7 8d 7 10 13 16 19 29 32 33 37Highlowmid=(low+high)/2key 1212high=mid-1二分查找又称折半查找,仅适用于有序表二分查找0 1 2 3 4 5 6 7 8d 7 10 13 16 19 29 32 33 37highlowkey 12low>high,查找失败二分查找又称折半查找,仅适用于有序表二分查找程序实现s=[1,3,7,12,23,45,60]key=23flag=Falselow=0high=len(s)-1while low<=high:mid=(low+high)//2if s[mid]==key:n=midflag=Truebreakelif s[mid]>key:high=mid-1else:low=mid+1if flag:print("该元素在列表中的下标为{}".format(n))else:print("未找到该元素")0 1 2 3 4 5 6 7 8 9 1071037333229191316414329midmidmid1337midmidmidmid7163241二分查找判定树的构造比较次数不超过判定树的高度+1时间复杂度:log2n二叉排序树二叉排序树:①若左子树不为空,则左子树的值均小于它的根节点的值②若右子树不为空,则右子树的值均大于它的根节点的值③它的左右子树也分别为二叉排序树感谢大家聆听 展开更多...... 收起↑ 资源预览