您所在的位置: 首页 > 软件教程 > 程序员必须知道的8大排序和3大查找

程序员必须知道的8大排序和3大查找

更新时间:2022-11-12 14:02:52 阅读: 作者:admin

类型:角色扮演 大小: 更新时间:1970-01-01
语言:简体中文 应用平台:Android
立刻下载
程序员必须知道的8大排序和3大查找 Java程序员appv2.3.0 官网安卓版 类型:教育学习大小:8.6M语言:中文 评分:10.0 标签: 立即下载 12 页 二分法查找(折半查找)

 

二、二分法查找(折半查找)的基本思想:

 

前提:

(1)确定该区间的中点位置:mid=(low+high)/2    

min代表区间中间的结点的位置,low代表区间最左结点位置,high代表区间最右结点位置

(2)将待查a值与结点mid的关键字(下面用R[mid].key)比较,若相等,则查找成功,否则确定新的查找区间:

如果R[mid].key>a,则由表的有序性可知,R[mid].key右侧的值都大于a,所以等于a的关键字如果存在,必然在R[mid].key左边的表中。这时high=mid-1

如果R[mid].key<a,则等于a的关键字如果存在,必然在R[mid].key右边的表中。这时low=mid

如果R[mid].key=a,则查找成功。

(3)下一次查找针对新的查找区间,重复步骤(1)和(2)

(4)在查找过程中,low逐步增加,high逐步减少,如果high<low,则查找失败。

 

程序员必须知道的8大排序和3大查找

平均查找长度=Log2(n+1)-1

注:虽然二分法查找的效率高,但是要将表按关键字排序。而排序本身是一种很费时的运算,所以二分法比较适用于顺序存储结构。为保持表的有序性,在顺序结构中插入和删除都必须移动大量的结点。因此,二分查找特别适用于那种一经建立就很少改动而又经常需要查找的线性表。