当前位置: 首页 > news >正文

网站网页设计模板/深圳网络推广的公司

网站网页设计模板,深圳网络推广的公司,企业网站开发与设计论文,wordpress文章怎么连接到其他网站1.顺序查找 顾名思义,就是按顺序往下一个一个查找,找到时返回,最差的情况是未找到并且全部遍历了一遍,这是消耗时间最长的一个方法 1.1代码实例:顺序查找 //顺序查找 int SeqSearch(RecType R[],KeyType x,int n){…

1.顺序查找

顾名思义,就是按顺序往下一个一个查找,找到时返回,最差的情况是未找到并且全部遍历了一遍,这是消耗时间最长的一个方法

1.1代码实例:顺序查找

//顺序查找 
int SeqSearch(RecType R[],KeyType x,int n){printf("开始顺序查找元素=>%d\n",x); for(int i=0;i<n;i++){if(R[i].data==x){printf("找到元素%d了,在第%d个\n",x,i+1);return i+1;}}printf("找不到该元素%d\n",x);return -1;
}

2.二分法查找(折半查找法)

顾名思义,折半查找就是找一个元素,没找到就"切"一半继续找,直接舍弃另一边的元素

个人认为此方法需要建立在元素值已经排序后才可以进行查找元素位置

话不多说先上图
在这里插入图片描述
假设我们需要找到元素70的位置

  1. 先确定1位和末尾(图中为11位)的位置,值赋给low和high代表左驱和右驱,中间位置(图中为6)赋值给mid
    这时肯定有同学会问(就是我自己了),如果中间位置有俩怎么办呢,其实这个mid值的数据类型的int型的,也就是说假设(3+6)/2=4.5时,int类型的mid会得到4,也就是整型数据不看小数点(不是四舍五入,是不看小数点)
  2. 接下来比对mid位置的值是否等于要查找的值(图中为70),此时可以看到,56<70,所以需要在值更大的区间去寻找(这也是为什么我说二分法需要排序的原因),即进行 low=mid , mid=(left+right)/2
  3. 继续比对,现在mid=80了,80>70,即需要在更小区间,即进行 right=mid,mid=(left+right)/2 操作
  4. 重复操作,直到left==right为止结束

2.1代码实例:二分法查找元素

//二分查找 
int HalfSearch(RecType R[],KeyType x,int n){printf("开始二分查找元素=>%d\n",x);int left=0,right=n-1,mid=(left+right)/2;while(left!=right){if(R[mid].data==x){printf("找到%d元素的位置为%d\n",x,mid+1);return mid;}if(R[mid].data>x){right=mid;mid=(left+right)/2;}else if(R[mid].data<x){left=mid;mid=(left+right)/2;}}printf("找不到该元素%d\n",x);return -1;
} 

3.完整代码及结果示例

#include<stdio.h>
#include<stdlib.h>
typedef int KeyType;
typedef int InfoType;
typedef struct{KeyType key;InfoType data;
}RecType;//创建 
void CreatList(RecType R[],KeyType keys[],int n){for(int i=0;i<n;i++){R[i].data=keys[i]+12;R[i].key=i+1;}printf("创建成功\n");
}//顺序查找 
int SeqSearch(RecType R[],KeyType x,int n){printf("开始顺序查找元素=>%d\n",x); for(int i=0;i<n;i++){if(R[i].data==x){printf("找到元素%d了,在第%d个\n",x,i+1);return i+1;}}printf("找不到该元素%d\n",x);return -1;
}//二分查找 
int HalfSearch(RecType R[],KeyType x,int n){printf("开始二分查找元素=>%d\n",x);int left=0,right=n-1,mid=(left+right)/2;while(left!=right){if(R[mid].data==x){printf("找到%d元素的位置为%d\n",x,mid+1);return mid;}if(R[mid].data>x){right=mid;mid=(left+right)/2;}else if(R[mid].data<x){left=mid;mid=(left+right)/2;}}printf("找不到该元素%d\n",x);return -1;
} //输出
void DispList(RecType R[],int n){for(int i=0;i<n;i++){printf("关键字:%d  所对应的元素值为%d\n",R[i].key,R[i].data);}
} int main(){int keys[10]={1,2,3,4,5,6,7,8,9,10};RecType R[20];CreatList(R,keys,10);DispList(R,10);int local=SeqSearch(R,4,10);local=SeqSearch(R,14,10); local=HalfSearch(R,18,10);local=HalfSearch(R,8,10);
}

结果

创建成功
关键字:1 所对应的元素值为13
关键字:2 所对应的元素值为14
关键字:3 所对应的元素值为15
关键字:4 所对应的元素值为16
关键字:5 所对应的元素值为17
关键字:6 所对应的元素值为18
关键字:7 所对应的元素值为19
关键字:8 所对应的元素值为20
关键字:9 所对应的元素值为21
关键字:10 所对应的元素值为22
开始顺序查找元素=>4
找不到该元素4
开始顺序查找元素=>14
找到元素14了,在第2个
开始二分查找元素=>18
找到18元素的位置为6
开始二分查找元素=>8
找不到该元素8

http://www.jmfq.cn/news/5290057.html

相关文章:

  • 几年做啥网站能致富/广告营销策划
  • 网站设计两边为什么要留白/全网推广平台
  • 网站开发的阶段/深圳市住房和建设局官网
  • 北斗手表官方网站/网页模板图片
  • 免费外贸网站制作/营销型网站建设目标
  • 设计网站的功能有哪些/长沙seo报价
  • 洛阳网上房地产/aso关键词优化工具
  • 网站制作主题/信息推广的方式有哪些
  • 西安高校定制网站建设/泰州网站建设优化
  • php做购物网站系统/企业网站建设步骤
  • 公司做网站开发流程/培训机构加盟
  • 做网站时怎么裁切存图/现场直播的视频
  • 关于网站建设的毕业论文/学seo需要学什么专业
  • 设计网站b/旺道优化软件
  • 建设工程类公司网站/网站如何快速推广
  • 网站引导动画/天津百度快速优化排名
  • 360平台怎么做网站优化/资源搜索引擎搜索神器网
  • 淄博网站建设/恶意点击软件有哪些
  • 东莞网站竞价推广/开封seo公司
  • 上海seo网站优化/旺道seo工具
  • 桂林北站离哪个景区近/脚本外链平台
  • 网站建设优秀网站建/整合营销的案例
  • 政务门户网站建设/google国际版
  • 一个公司可以做多少个网站/在线生成个人网站免费
  • 青岛的网站建设公司/网站推广优化招聘
  • 高品质的佛山网站建设/谁有恶意点击软件
  • 校园网站制度建设/网络优化这个行业怎么样
  • 武汉万网站制作 费用/怎么seo网站排名
  • 做网站运营需要学什么/百度知道客服电话
  • 傻瓜建站/合肥seo