×

二分查找法c语言

二分查找法c语言(用C语言编二分查找)

admin admin 发表于2023-08-05 18:54:50 浏览63 评论0

抢沙发发表评论

本文目录

用C语言编二分查找

#include《stdio.h》#include《stdlib.h》#include《time.h》void xuanzhe(int a, int n){ int i, j, min, t; for (i=0; i《n-1; i++) /*要选择的次数:0~n-2共n-1次*/ { min = i; /*假设当前下标为i的数最小,比较后再调整*/ for (j=i+1; j《n; j++)/*循环找出最小的数的下标是哪个*/ { if (a\n“,x,mid);elseprintf(“没有你要找的数\n“);printf(“%fs\n“,(clock()-y)/CLOCKS_PER_SEC);}

c语言编程二分查找

好久不写了写一个程序,建立N元整型数组,然后输入查找的整数x,查找x是否包含在数组中,查找用函数实现,若查找成功,返回x在数组中的第一次出现的下标,查找失败,返回-1源程序:#include“stdio.h“#define N 10int locate(int a); printf(“\n fist position=%d\n“,n);}没有错误,我试过了

怎样写二分查找算法的程序(用C语言实现)

我用一个子函数实现的,主函数你自己写,对你又好处,需要传入一个数组和数组长度n以及要查找的数,如果查找成功,返回x在数组中的位置,否则返回-1int search(int *a,int x){ int low=0,high=n-1,mid,flag=-1; while(low《=high) { mid=(low+high)/2; if(a》low) low=mid+1; else high=mid-1; } return flag;}

二分查找 c语言 二分查找

#include《stdio.h》int main(){ int i,j,k,n,m; int a; scanf(“%d“,&n); for(i=0;i《n;i++) scanf(“%d“,&a》m) right=mid-1; else left=mid+1; } if(left《right) printf(“null\n“);return 0;}

用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);        printf(“\n“);    }    printf(“请输入你要查找的数:\n“);    scanf(“%d“, &key);    i = Search(a, key);    if (-1 == i)        printf(“你要查找的数不在目标数组中!\n“);    else        printf(“你要查找的数的数组下标为 %d \n“, i);}

C语言二分查找法

#include 《stdio.h》int binfind(int val , int num , int value){ int start = 0; int end = num - 1; int mid = (start + end)/2; while(val == value) return mid; else return -1;}int main(){ int nums = {1 , 3 , 4 ,7 ,8 , 12 ,45 ,67 ,97 ,123 ,456 ,675 ,1111 , 4534 , 4563}; int result = binfind(nums , sizeof(nums) / sizeof(nums) , 45); if (result 《 0) { printf(“查无此数“); } }

二分查找法 c语言程序设计

我给你一个例子:#include《stdio.h》#define N 10main(){ int k,i; int table\n“,k,mid); else printf(“can’t find the number%d.\n“,k);}

二分查找 C语言

这最后一个语句写错了:printf(“您输入的数组是“);for(i=0;i《n;i++){printf(“%d“,&a);} //要有空格,不要有取地址符