折半查找法C语言,折半查找算法(算法设计题)

折半查找法C语言,折半查找算法(算法设计题),C语言实现折半查找法(二分法)

本文主要详细介绍了半查找法的C语言实现。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。

对折搜索法也叫二分搜索法。顾名思义,就是把数据分成两半,然后确定你要找的是哪一半的键,然后重复上述步骤,直到找到目标键;

注意:半查找法只适用于已有序列的数组和数据的操作!

显然,半搜索方法比其他搜索方法(如顺序搜索方法)效率高得多。

让我们进行一次实际操作来理解二分搜索法的意思。

例如:数组arr []={8,7,9,6,4,1,2,5,3,10,11}中;在中找到key=7的位置;首先,我们必须对数组arr中的数据成员进行排序。arr[]={1,2,3,4,5,6,7,8,9,10,11 };

如图:记录这组数据的小端为低,大端为高,中间值为中;

用二分法搜索时,将搜索到的key与mid进行比较,例如key=7,以缩小mid和high之间的搜索范围;

可以发现如图key=low=7;

注意: (敲黑板)如果中间数mid不是整数,需要进行取整。

代码如下:

# includestdio.h

Intbinsearch (Intarr [],Intlen,int key)//二分搜索法方法(二分法)

{

int low=0;//定义初始最小值

int high=len-1;//定义初始最大值

int mid//定义中间值

while(低=高)

{

mid=(低高)/2;//找到中间值

If(key==arr[mid]) //确定min和key是否等于2020111122411718

返回mid

Else if(keyarr[mid]) //如果keymid,则新区域为[mid 1,high]。

低=中1;

Else //if keymid,新区为[low,mid-1]。

高=中-1;

}

return-1;//如果数组中没有目标值键,返回-1;

}

int main()

{

int arr[]={1,2,3,4,5,6,7,8,9,10,11 };//首先,对数组arr进行排序

printf('%d \n ',BinSearch(arr,(sizeof(arr)/sizeof(arr[0])),7));

返回0;

}

运行结果如下:

希望对你有帮助!

这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 利用c语言实现三子棋游戏的目标,c语言三子棋程序,利用C语言实现三子棋游戏
  • 留言与评论(共有 条评论)
       
    验证码: