折半查找(Binary Search)又称为二分查找。 它的前提是线性表中的记录必须是关键码有序(通常从小到大有序),线性表必须采用顺序存储,也就是有序排列。
老师给我们举了一个例子:A同学买了一双鞋420元,A同学让B同学猜一下鞋子的价格,并告诉B同学价格低于500元,那么B同学为了尽快猜出鞋子的价格,就不可能从1,2,3,4,5.......这样慢慢一个一个猜,而是可以猜一个中间价格,250元,然后A同学说猜少了,接着B同学就可以从251到500之间再猜一个数字,这样减少了用时而更快猜出鞋子价格。类似的折半查找算法就是这样原理。
例如用折半查找算法查找{1,2,3,4,5,6,7,8,9,10}中的数字7
写成代码如下:
这里的sz是指arr这个字符集合/数组的元素个数,也可以直接应用strlen函数,当然前面就要加入库函数——#include <string.h>。
很显然它的结果为:
然后下面这个代码大家可以看看,挺有意思的
其实写博客不仅是给大家分享自己学习到的一些东西(我个人觉得值得注意一下的),知道不全面哈,也是记录一下,也当作是给自己做的笔记啦!
学习的过程很艰辛,但我们也要不负韶华,让以后的自己不会后悔当初的选择!加油吧,陌生人!