数据结构怎样折半查找?
举个例子说明吧,在下面一堆数中找数字2
编写代码是先定义3个int类型的变量m,f,l,
初始时,将f==1的地址,l==7的地址,m=(f+l)/2
先遍历m处的数据,它大于2,说明2在它的左边,这个时候将l的值改一下,改成l=m-1(为什么呢?因为你把l改成m-1,那么下一次遍历就在1到4之间查找了。
)
l=m-1,f=1不变,m等于此时的l加f的和除以2,即m=(f+l)/2,那么m就指向(1+4)/2=2.5的位置,但是m是int类型,在c中2.5取整后为2,所以m=2,m指向数组第二个位置,这个位置的数据就是2,查找成功!
初始时:
f=First m=middle l=last
↓ ↓ ↓
1 2 3 4 5 6 7
第二次遍历:
f m l
↓ ↓ ↓
1 2 3 4 5 6 7
-
下一篇:在顺序表中实现折半查找和简单排序
精选文章
生日礼物送什么最好
阅读131
2024-05-18
喝蜂蜜有坏处吗
阅读127
2024-05-18
什么叫住房公积金贷款
阅读132
2024-05-18
自我介绍销售经理
阅读76
2024-05-17
中国的24个节气是什么
阅读182
2024-05-13
什么食物含有优质蛋白
阅读102
2024-05-13
相关文章
C语言折半查找法详细代码(假如有10个已排好序的数)
阅读182
2023-06-10
折半查找的算法怎么写 C语言
阅读115
2023-06-10
c语言编程实现“折半查找”的过程。
阅读80
2023-06-10
求C语言编写程序折半查找程序
阅读79
2023-06-10
求C语言折半查找法 代码
阅读197
2023-06-10
用c#实现折半查找
阅读181
2023-06-10
关于C语言用折半查找法查找数的问题
阅读111
2023-06-10
折半插入排序和归并排序
阅读131
2023-06-10
折半排序问题 C语言
阅读105
2023-06-10
C语言 折半查找法 程序停止运行
阅读81
2023-06-10