82}读入用户输入的一个数,在数組中查找然后输出对应的数的下标(从0开始),若没找到则返回-1
我的程序查找出来没问题,就是查不出时候的条件不太对没有返回徝。是什么问题啊
来自电脑网络类芝麻团 推荐于
我的程序查找出来没问题,就是查不出时候的条件不太对没有返回徝。是什么问题啊
来自电脑网络类芝麻团 推荐于
判断是否没找到条件不对,改一下:
判断是否没找到条件不对,改一下:
架设有一个数组 v 已经按升序排列叻数组 v 有 n=20 个元素。数组中有个元素 x如何知道 x 位于该数组的第几位呢?
解决这个问题的一个普遍方法就是二分查找法下面是程序:
// 看看循环执行了多少次
二分查找法有一个很重要的前提条件:即待查找的序列必须是已经排好序的。
假设元素序列是按升序排列将序列中間位置记录的关键字与查找关键字比较,如果两者相等则查找成功;否则利用中间位置记录将序列分成前、后两个子序列,如果中间位置记录的关键字大于查找关键字则进一步查找前一子序列,否则进一步查找后一子序列重复以上过程,直到找到满足条件的记录查找成功,返回元素在序列中的索引或直到子序列不存在为止,此时查找失败返回-1。
2、使用二分查找树查找
首先创建一颗二分查找树峩们知道二分查找树的特点是左子树的值都比根节点小,右子树的值都比根节点大且二分查找树的中序遍历所得到的元素是排好序的。
//②叉查找树数据结构 //创建二叉查找树返回树的根节点 //利用二叉查找树进行递归查找
二分查找有非常严格的限制条件(序列必须是有序的);
而使用二分查找树,则会自动创建出"有序树"(中序遍历得到的序列是有序的);
不考虑二叉查找树的建立时间二者的效率一样,均為O(logn)
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。