编程实现二分查找算法。二分(折半)查找(搜索)算法如下: [br][/br]数组a中的n个数从大到小(降序)的顺序排列,要检索一个数x是否在a中,折半查找算法的思路是:设查找区间为[lower, upper],初值lower=0, upper=n-1; [br][/br]算法步骤: [br][/br](1)输入数组a的元素及x; [br][/br](2)如果x在数组a中,查找成功,并返回所在位置;否则查找不成功。 [br][/br]试题要求: [br][/br]根据已知参数名请写出该算法的实现过程。(编程)
举一反三
- 编程完成在一个数组中查找指定数据的功能,具体要求如下: (1)用静态初始化的方法定义并初始化一个数组;[br][/br] (2)从控制台输入一个数,在数组中查找此数,如果找到则输出这个数是数组中的第几个数,如果没有找到,则输出“查无此数”。
- 下列算法中,最坏情况下时间复杂度最低的是[br][/br]( )。 A: 顺序查找法 B: 堆排序 C: 二分查找法 D: 快速排序
- 关于二分查找法,下列说法错误的是( )。[br][/br]· A: 查找方式比较高效<br>· B: 只能用于排序后的数组<br>· C: 按照数组中的元素排列序号,从前往后一个一个查<br>· D: 将指定元素和数组中间位置的元素进行比较
- 在索引顺序表中,实现分块查找,在等概率查找情况下,其平均查找长度不仅与表中元素个数有关,而且与每块中元素个数有关。[br][/br] [br][/br](判断题)
- 有一个线性表(a ,a ,…,a ),其中 n≥2,采用带头结点的单链表存储,头指针[br][/br]1[br][/br]2[br][/br]N[br][/br]为 L,每个结点存放线性表中一个元素,结点类型为(data,next),现查找某个元素值等[br][/br]于 x 的结点指针,若不存在这样的结点返回 NULL。分别写出下面 3 种情况的查找语句。[br][/br]要求时间尽量少。[br][/br](1线性表中元素无序。[br][/br](2线性表中元素按递增有序。[br][/br](3线性表中元素按递减有序。