栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

二分法(c语言)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

二分法(c语言)

一个典型算法

算法:当数据量很大时宜采用此方法。使用前提:使用二分查找时,数据是排好序的。

基本思想:假设数据是升序的,对于给定的n,从序列的中间位置mid开始比较,

如果数组为arr[10],则mid=(0+9)/2; mid 为数组的角标;

如果 当前位置arr[mid]等于n,则查找成功;

若n小于arr[mid],则在数组的前半段查找,arr[left,mid-1];

若n大于arr[mid],则在数组的后半段查找,arr[mid+1,ringht];

然后再重新结算mid的值,比如 n小于arr[mid],则第二次mid =(left+mid-1)/2;

然后再次比较;重复,直到找到n为止,或者找不到。

#include 
 void EF(int arr[],int sz,int n){  //如果查找到了则输出YES;
 int left=0;
 int right=sz-1;
 while(left<=right){
  int mid=(left+right)/2;
  if(narr[mid]) left=mid+1;
  else {
   printf("YESn");
   break;
  }
 }
 if(left>right) printf("NOn"); //没查找到,跳出循环,输出NO;
}
int main()
{
 int n,m;  int i,j; 
 scanf("%d %d",&n,&m);
 int arr[n];int arr2[m];
 for(i=0;i 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/588035.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号