二分查找法c语言函数实现 二分法查找c++语言程序

用C语言写二分查找的代码!!!

推荐答案的 code 有问题,并没有考虑到若待查数的下标是 0 怎么办?所以若顺序表中不存在待查元素 应该 return -1

在特克斯等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计制作、做网站 网站设计制作定制网站设计,公司网站建设,企业网站建设,成都品牌网站建设,网络营销推广,成都外贸网站建设公司,特克斯网站建设费用合理。

加上主函数的最后两行调用两次查找函数很多余,代码显得不够简练。

建议改成:

#include stdio.h

#include stdlib.h

int Search(int *a, int key)

{

// 在顺序表中折半查找 key的数据元素。若找到,则函数值为

int low = 0, mid; // 该元素的数组下标;否则为0。

int high = 14;

while (low = high)

{

mid = (low + high) / 2;

if (key == a[mid])

return mid; // 找到待查元素

else if (key  a[mid])

high = mid - 1; // 继续在前半区间进行查找

else

low = mid + 1; // 继续在后半区间进行查找

}

return -1; // 顺序表中不存在待查元素

}

void main()

{

int *a, key, i;

int b[15] = {0};

a = b;

printf("请自小到大输入15个整数:\n");

for (i = 1; i = 15; i++)

{

scanf("%d", b[i - 1]);

printf("\n");

}

printf("请输入你要查找的数:\n");

scanf("%d", key);

i = Search(a, key);

if (-1 == i)

printf("你要查找的数不在目标数组中!\n");

else

printf("你要查找的数的数组下标为 %d \n", i);

}

二分查找 c语言 二分查找

#includestdio.h

int main()

{

int i,j,k,n,m;

int a[105];

scanf("%d",n);

for(i=0;in;i++)

scanf("%d",a[i]);

scanf("%d",m);

int left=0;right=n-1;

while(right=left)

{

mid=(left+right)/2;

if(a[mid]==m)

{

printf("%d\n",mid);

break;

}

else if(a[mid]m)

right=mid-1;

else

left=mid+1;

}

if(leftright)

printf("null\n");

return 0;

}

二分查找(C语言实现)

  二分查找是一种简单高效的查找算法。其思想在生活中广泛应用,比如从图书馆书架上查找书,查字典,测量领域中热电偶温度补偿等。

  二分查找可以用 循环 和 递归 两种方式实现


新闻标题:二分查找法c语言函数实现 二分法查找c++语言程序
链接URL:http://cdiso.cn/article/ddcicgj.html

其他资讯