C语言实现顺序表的顺序查找和折半查找
作者:Andrelia20171760 发布时间:2021-10-24 13:17:19
标签:C语言,顺序表
本文实例为大家分享了C语言实现顺序表的顺序查找和折半查找的具体代码,供大家参考,具体内容如下
顺序查找:
#include <iostream>
using namespace std;
int SeqSearch(int r[],int n,int k)
{
r[0]=k;//下标0用作哨兵存放要查询的数
int i=n;
while(r[i]!=k)//不用判断下标i是否越界
{
i--;
}
return i;
}
int main()
{
int n;
cout<<"请输入数组元素个数:"<<endl;
cin>>n;
int a[n+1];
cout<<"请输入数组元素:"<<endl;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
int k;
cout<<"请输入要查询的数:"<<endl;
cin>>k;
for(int i=1;i<=n;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
cout<<"该数在数组中的位置为:";
cout<<SeqSearch(a,n,k);
return 0;
}
折半查找:
#include<iostream>
using namespace std;
int BinSearch1(int r[],int n,int k)//非递归
{
int low=1,high=n;//设置查找区间
while(low<=high)//如果区间存在
{
int mid=(low+high)/2;
if(k<r[mid])high=mid-1;//查找在左半区进行,回到while那一步
else if(k>r[mid])low=mid+1;
else return mid;
}
return 0;//如果区间不存在,则返回0,查找失败
}
int BinSearch2(int r[],int low,int high,int k)//递归
{
int mid=(low+high)/2;
if(low>high) return 0;
else
{
if(k<r[mid])BinSearch2(r,low,mid-1,k);
else if(k>r[mid])BinSearch2(r,mid+1,high,k);
else return mid;
}
}
int main()
{
int n;
cout<<"请输入数组元素个数:";
cout<<endl;
cin>>n;
int a[n+1];
cout<<"请输入数组元素:";
cout<<endl;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
cout<<"请输入要查找的数:";
cout<<endl;
int k;
cin>>k;
cout<<"该数在数组中的位置是:"<<endl;
cout<<BinSearch1(a,n,k);cout<<endl;
cout<<BinSearch2(a,1,n,k);
}
来源:https://blog.csdn.net/Andrelia20171760/article/details/91610850
0
投稿
猜你喜欢
- DozerDozer是一种Java Bean到Java Bean的映射器,递归地将数据从一个对象复制到另一个对象,它是一个强大的,通用的,灵
- 需求:android存储字符串数据简单的有SharePerfence不过只能存储89kb最多的数据(好像),超过这个数据如果不方便网络存储,
- 前言作为一个新手,最近在学习C#,自己折腾弄了个简单的小说爬虫,实现了把小说内容爬下来写入txt,还只能爬指定网站。第一次搞爬虫,涉及到了网
- 配置文件<?xml version="1.0" encoding="utf-8" ?>&
- Object 类位于 java.lang 包中,是所有 Java 类的祖先,Java 中的每个类都由它扩展而来。定义Java类时如果没有显示
- 主要实现的功能:1.程序附带多张拼图随机拼图。2.可手动添加拼图。3.游戏成功判断。4.30秒超时判断。 Puzzle.csus
- 引入:前段时间去银行办业务,排队的人那是真多,自己正式办理业务也就不到5分钟,但是却足足等了两个小时(相信很多人都遇到过这种情况),对这种服
- 在SpringAMQP的发送方法中,接收消息的类型是Object,也就是说我们可以发送任意对象类型的消息,SpringAMQP会帮我们序列化
- 动态获取对象的性能值,这个在开发过程中经常会遇到,这里我们探讨一下何如高性能的获取属性值。为了对比测试,我们定义一个类Peoplepubli
- Java注解的Excel导出依赖: <dependency> &
- 首先,类只能使用public修饰是一个伪命题,应该说我们只见到过使用public修饰的类,还有一些类没有访问修饰符,此时访问权限为defau
- 1 前言项目中,目前主流的当然是微服务项目。为了应对高并发,以及保证自己的服务比较稳定,通常会把服务按照模块,或者具体的业务划分为多个独立的
- 先来个效果图觉得不好看可以自己调整1.绘制数据点线状图一般由数据点和连线组成在绘制连线之前,我们先标出数据点这里我选择用Image图片来绘制
- 由于最近的工作需要用到文本转语音的功能,在网上找到的资料有些不完整,特此记录下整个完整功能。这种方式的优点在于不会被浏览器限制,在js的文本
- 本文介绍idea的安装和基本使用首先保证JDK正常安装及配置下载地址:https://www.jetbrains.com/idea/down
- 一、基本概念(重要)Integer 是 int 的包装类,int 则是 java 的一种基本数据类型;Integer 变量必须实例化后才能使
- springmvc 中的 * 可以对请求进行判别, 在请求到达控制器之前, 把非法的请求给拦截掉下面来说一说, 它在springboot中的
- 本文实例总结了C#中WinForm程序退出方法技巧。分享给大家供大家参考。具体分析如下:在c#中退出WinForm程序包括有很多方法,如:t
- web.xml中servlet> <servlet-name>SpringMVC</servlet-name>
- servlet实现文件上传,预览,下载和删除,供大家参考,具体内容如下一、准备工作:1.1 文件上传插件:uploadify;1.2 文件上