二分法查找折半查找.doc

上传人:飞*** 文档编号:30645073 上传时间:2018-01-31 格式:DOC 页数:7 大小:88KB
返回 下载 相关 举报
二分法查找折半查找.doc_第1页
第1页 / 共7页
二分法查找折半查找.doc_第2页
第2页 / 共7页
二分法查找折半查找.doc_第3页
第3页 / 共7页
二分法查找折半查找.doc_第4页
第4页 / 共7页
二分法查找折半查找.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《二分法查找折半查找.doc》由会员分享,可在线阅读,更多相关《二分法查找折半查找.doc(7页珍藏版)》请在金锄头文库上搜索。

1、摘要:Matlab 作为一款功能强大的软件在程序编写方面也功能强大。本论文分别用 C 语言和 Matlab 编写了一个简单的二分法查询算法,从中了解他们的异同,从而从 Matlab 和 C 语言的角度进一步了解数学软件与算法之间的知识。关键字:Matlab、C、算法1、知识点简述1、Matlab 简述Matlab 的名称源自 Matrix Laboratory,是 MathWorks 公司于1984 年推出的数学软件,是一种用于科学工程计算的高效率的高级语言。Matlab 的基本功能如下:数学运算功能;2D 和 3D 图形显示功能;交互式的高级编程语言M 语言编程功能;工具箱函数功能;编译功能

2、;Simulink 仿真功能;Stateflow 交互式设计功能;自动代码生成功能等等2、C 语言和算法用 C 语言编写的程序,称为 C 语言源程序,简称 C 程序。所谓算法是指一组有穷的指令集,是解题方案的准确而完整的描述。通俗地说,算法就是计算机解题的过程。一般来说,算法应具有的特征有:确定性,算法的每一步都必须有确切的定义;有穷性,一个算法必须在执行有穷步后结束;可行性;拥有足够的情报。通常,一个算法由对数据对象的运算和操作以及其控制结构两部分组成。2、问题叙述本论文中以数学建模为基础,根据研究方向为算法出发,以一个简单的程序为例,简要的讲诉数学建模软件和算法之间的关系。1、问题用二分法

3、编写程序,查找数组中是否存在某一个整数2、分析问题2.1、可以将问题分解成几个小问题:输入模块,查找模块,主模块等。2.2、查找的整数由键盘输入2.3、用一个函数来计算数组中是否存在某一整数,如果数组中存在该整数,则返回该正数在数组中的位置;反之,则返回-12.4 分别用 C 语言和 Matlab 编写程序3、程序设计1、简单设想2、模块设计2.1、为了增强程序的可读性,需要一定的提示语句和输出语句,即:屏幕输入模块2.2、该问题主要是在于查找,则可以把用二分法查找的信息单独设置成一个模块,即:查找模块2.3、即使是一个小程序,也需要有主函数(C 语言中是 Main 函数) ,简要的显示程序的

4、大纲信息,即:主模块3、符号说明程序代码中有很多的符号,可读性强的程序中的符号都有一定的符号含义,可以使得程序更容易读懂和理解4、程序代码1、C 语言编写的程序#include stdio.h#include stdlib.hvoid printData(int a) /数组输出函数int i;for(i=0;ib)return -1;elsemid=(a+b)/2;if(x=Lmid)return mid;elseif(xLmid)return Binary_Search(L,mid+1,b,x);elsereturn Binary_Search(L,a,mid-1,x);main() /主

5、函数int L=23,24,33,43,53,67,77;int position,x; printf(please input a data you want to find:);scanf(%d,printData(L);position=Binary_Search(L,0,6,x);if(position=-1)printf(the data you can not find,not in Ln);elseprintf(the position of the data is:%dn,position+1);2、Matlab2.1、Binary_Search.m %二分法查找的函数func

6、tion findD=Binary_Search(L,a,b,x)if ab findD=-1;returnelsemid =(a+b) / 2;if x=L(mid); findD=mid;returnelseif xL(mid); findD=Binary_Search(L,mid+1,b,x);returnelsefindD=Binary_Search(L,a,mid-1,x);returnend endEnd2.2、findData.m %主函数L=23,24,33,43,53,67,77;lenD=length(L);x=input(please input a data you w

7、ant to find:);disp(L);a=1;position=Binary_Search(L,a,lenD,x);if position=-1disp(the data you can not find,not in L);elsedisp(the position of the data is:);disp(position);end5、结果显示程序中已定义数组为:L=23,24,33,43,53,67,77;1、C 语言中的结果显示1.1、输入数字:0 :不存在1.2、输入数字:23 :存在,第 1 个数字1.3、输入数字:33 :存在,第 3 个数字1.4、输入数字:77 :存在

8、,第 7 个数字1.5、输入数字 80 :不存在2、Matlab 中的结果显示2.1、输入数字:0 :不存在 findData.mplease input a data you want to find:023 24 33 43 53 67 7the data you can not find,not in L2.2、输入数字:23 :存在,第 1 个数字 findData.mplease input a data you want to find:2323 24 33 43 53 67 77the position of the data is:12.3、输入数字:33 :存在,第 3 个数

9、字 findData.mplease input a data you want to find:3323 24 33 43 53 67 77the position of the data is:32.4、输入数字:77 :存在,第 7 个数字 findData.mplease input a data you want to find:7723 24 33 43 53 67 77the position of the data is:72.5、输入数字 80 :不存在 findData.mplease input a data you want to find:8023 24 33 43 53 67 77the data you can not find,not in L

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号