数据结构与算法里,折半查找中,low指向低端的记录,high指向高端的记录,每次计算中间位置mid的公式是()。

题目
单选题
数据结构与算法里,折半查找中,low指向低端的记录,high指向高端的记录,每次计算中间位置mid的公式是()。
A

(low&high)/2

B

(low+high)/2

C

(low-high)/2

D

low/2+high/2

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

数据结构与算法里,折半查找中,low指向低端的记录,high指向高端的记录,每次计算中间位置mid的公式是()。

  • A、(low&high)/2
  • B、(low+high)/2
  • C、(low-high)/2
  • D、low/2+high/2

正确答案:B

第2题:

数据结构与算法里,顺序表的查找有()

  • A、顺序查找
  • B、折半查找
  • C、随机查找
  • D、索引查找

正确答案:A,B

第3题:

N个有序整数数列已放在一维数组中,给定下列程序中,函数fun()的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,则返回其下标值:反之,则返回-1。

折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(low<high),然后把m与中间位置(mid)中元素的值进行比较。如果m的值大于中间位置元素中的值,则下一次的查找范围放在中间位置之后的元素中;反之,下次查找范围落在中间位置之前的元素中。直到low>high,查找结束。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

include <stdio.h>

define N 10

/*************found*********************/

void fun(int a[],int m)

{ int low--0,high=N-l,mid;

while (low<=high)

{ mid=(low+high)/2;

if(m<a[mid])

high=mid-1;

/*************found*********************/

else if(m>=a [mid])

low=mid+1;

else return(mid);

}

return(-1);

}

main ()

{ int i,a[N]={-3,4,7,9,13,24,67,89,100,180},k,m;

printf ("a数组中的数据如下: ");

for(i=0;i<N;i++) printf("%d",a[i]);

printf ("Enter m: "); scanf ("%d", &m);

k=fun (a,m);

if (k>=0) printf ("m=%d, index=%d\n",m, k);

else printf("Not be found!\n");

}


正确答案:(1)错误:void fun(int a[]int m) 正确:int fun(int a[]int m) (2)错误:else if(m>=a[mid]) 正确:else if(m>a[mid])
(1)错误:void fun(int a[],int m) 正确:int fun(int a[],int m) (2)错误:else if(m>=a[mid]) 正确:else if(m>a[mid]) 解析:fun (int a[],int m)函数的返回值为int类型,所以定义函数时,函数的返回类型不能是void,而是int类型。
else if(m>=a[mid]中的m>a[mid]与m=a[mid]两个条件段的结果不一样,所以要分开考虑。

第4题:

数据结构与算法里,顺序表的查找有顺序查找和()。

  • A、折半查找
  • B、线性查找
  • C、随机查找
  • D、索引查找

正确答案:A

第5题:

数据结构中,下列选项中符合折半查找的前提的是()。

  • A、顺序存储
  • B、记录有序
  • C、记录无序
  • D、链式存储

正确答案:A,B

第6题:

在查找算法里,折半查找需要的前提是记录顺序存储并且有序。


正确答案:正确

第7题:

数据结构与算法里,折半查找的前提是()。

  • A、顺序存储
  • B、记录有序
  • C、记录无序
  • D、链式存储

正确答案:A,B

第8题:

折半查找

function binsearch(k:keytype):integer;

var low,hig,mid:integer;


正确答案:

 

begin
low:=1;hig:=n;
mid:=(low+hig) div 2;
while (a[mid].key<>k) and (low<=hig) do begin
if a[mid].key>k then hig:=mid-1
else low:=mid+1;
mid:=(low+hig) div 2;
end;
if low>hig then mid:=0;
binsearch:=mid;
end;

第9题:

数据结构与算法里,顺序表的查找分为:顺序查找和折半查找。


正确答案:正确

第10题:

数据结构与算法中的各种查找方法中,平均查找长度ASL与结点个数n无关的查找方法是()。

  • A、顺序查找
  • B、折半查找
  • C、哈希查找
  • D、分块查找

正确答案:C