第14周项目1-验证算法
来源:互联网 发布:便知天下事 编辑:程序博客网 时间:2024/05/22 02:44
问题及代码:
*Copyright (c) 2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:lulu.cpp *作者:芦亚茹 *完成日期:2015年11月30日 *版本号:v1.o * *问题描述:认真阅读并验证折半查找算法。请用有序表{12,18,24,35,47,50,62,83,90,115,134} 作为测试序列,分别对查找90、47、100进行测试。*/
#include <stdio.h>#define MAXL 100typedef int KeyType;typedef char InfoType[10];typedef struct{ KeyType key; //KeyType为关键字的数据类型 InfoType data; //其他数据} NodeType;typedef NodeType SeqList[MAXL]; //顺序表类型int BinSearch(SeqList R,int n,KeyType k){ int low=0,high=n-1,mid; while (low<=high) { mid=(low+high)/2; if (R[mid].key==k) //查找成功返回 return mid+1; if (R[mid].key>k) //继续在R[low..mid-1]中查找 high=mid-1; else low=mid+1; //继续在R[mid+1..high]中查找 } return 0;}int main(){ int i,n=10; int result; SeqList R; KeyType a[]= {12,18,24,35,47,50,62,83,90,115,134},x=100; for (i=0; i<n; i++) R[i].key=a[i]; result = BinSearch(R,n,x); if(result>0) printf("序列中第 %d 个是 %d\n",result, x); else printf("然而并没有这个数,哈哈哈!\n"); return 0;}运行结果:
知识点及总结:
折半查找要求线性表是有序表,效率较高,但如果是查找大量无序的关键字,对其进行排序将会太麻烦。
0 0
- 第14周项目1-验证算法
- 第14周-项目1 - 验证算法
- 第14周 项目1-验证算法
- 第14周项目1-验证算法
- 第14周项目1- 验证算法
- 第14周项目1- 验证算法
- 第14周 项目1 - 验证算法 - 折半查找算法
- 第14周 项目1 - 验证算法 - 分块查找算法
- 第14周 项目1 - 验证算法 - 二叉排序树相关算法
- 第14周项目1.1验证算法
- 第14周 项目一 - 验证算法
- 第11周项目1验证算法
- 第15周 项目1-验证算法
- 第16周项目1验证算法
- 第15周项目1-验证算法
- 第15周 项目1 - 验证算法
- 第15周 项目1 - 验证算法
- 第15周项目1-验证算法
- PHP的基本语法——PHP语言标记及指令分隔符“分号”
- iOS 开发 - 让 UITabContorller 不同的tab 分别支持不同的横竖屏样式
- 互联网分布式应用集中式session的实现方式?
- 使cocopods管理开源库编译出现Library not found for -lPods问题的解决方法
- ExtJs入门
- 第14周项目1-验证算法
- Linux内核spin_lock、spin_lock_irq 和 spin_lock_irqsave 分析
- 跟人说话要说正向的,不然别人会觉得你不靠谱
- Android获取应用版本信息
- 工作过程中积累的书签(链接)
- C++之外部文件矩阵的导入
- 第十四周项目1-算法验证(3)
- 蒲公英 - 免费的应用托管平台|App应用众测分发
- web前端常用插件