运行折半查找法,在一个有序序列中查找某一特定的数

本文介绍了如何使用C语言实现折半查找法在一个已排序的数组中寻找特定数值。首先,通过选择法对数组进行升序排序,然后利用折半查找法在排序后的数组中进行搜索,若找到目标数则返回其位置,否则返回-1。在主函数中,用户被要求输入要查找的数,程序会输出查找结果。
摘要由CSDN通过智能技术生成

一、解题思路

1.宏定义数组元素个数为ARRNUM=10
函数原型声明void AscendSorting(int a[]);
函数原型声明int Bisearch(int x,int *a[],int left, int right);

2.设计函数
2.1设计函数void AscendSorting(int a[])
2.1.1函数功能
函数功能为实现对数组进行由小到大排序,排序方法选择效率较高的选择法
2.1.2 函数内部
定义变量int i=0,j=0,k=0;
使用循环的嵌套实现由小到大的排序
2.1.3 循环内部
外层循环for(i=0;i<ARRNUM;i++)内对k进行赋值k=i
内层循环for(j=i+1;j<ARRNUM;j++)内用if语句判断a[j]<a[k]是否成立,成立则k=j
内层循环结束则用if语句判断k!=i是否成立,成立则令a[i]=a[k]

2.2设计函数 int Bisearch(int x,int *a[],int left,int right)
2.2.1函数功能
如果找到对应数,函数返回值为对应数组下表,否则返回-1
函数功能为运行折半查找法,在一个有序序列中查找某一特定的数
2.2.2函数内部
定义变量mid并初始化为0,int mid=0;
用while循环实现查找,当查找范围下界小于等于查找范围上界时执行循环,循环判断条件是left<=right
循环内部
每一次循环开始时,将mid初始化为查找范围的中位数对应下标,mi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值