网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月08日漏签0天
河南it培训吧 关注:523贴子:7,053
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 0回复贴,共1页
<<返回河南it培训吧
>0< 加载中...

什么是算法?算法的5个特性

  • 只看楼主
  • 收藏

  • 回复
  • 云和数据2017
  • 铁杆吧友
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
算法(algorithm)是解决特定问题的步骤描述,通俗地讲,算法就是描述解决问题步骤的方法。例如,新学期开学,从家到学校的交通方式这个问题就有很多解决方案:有的学生乘坐火车,有的学生乘坐汽车,有的学生乘坐飞机,在本市的可能会自己开车或乘坐公共汽车,离学校近的可能会步行来学校。这里每一种方案就是一种算法,这么多解决方法就是这么多种算法。
在计算机中,算法也是对某一个问题的求解方法,只是它的表现形式是计算机指令的有序序列,执行这些指令就能解决特定的问题。例如,在高级程序设计语言(如C语言)中,常用的排序算法如选择排序、冒泡排序等,都是用计算机指令编写算法,来解决排序问题。
在程序设计中,算法有3种较为常用的表示方法:伪代码法、N-S结构化流程图和流程图法,用得最多的是流程图法,接下来就简单地学习算法的流程图法。流程图是描述问题处理步骤的一种常用图形工具,它由一些图框和流程线组成。使用流程图描述问题的处理步骤,形象观,便于阅读。画流程图时必须按照功能选用相应的流程图符号,常用的流程图符号如图所示。

图1-12所示的流程图符号中列举了4个图框、1个流程线和1个连接点,具体说明如下:
·起止框用于表示流程的开始或结束。
·输入输出框用平行四边形表示,在平行四边形内可以写明输入或输出的内容。
·判断框用菱形表示,它的作用是对条件进行判断,根据条件是否成立来决定如何执行后续的操作。
·处理框用矩形表示,它代表程序中的处理功能,如算术运算和赋值等。
·流程线用单向箭线或直线表示,可以连接不同位置的图框。流程线的标准流向是从左到右和从上到下,可用直线表示,非标准流向的流程线应使用箭头指示方向。
·连接点用圆形表示,用于流程图的延续。通过上面的讲解,读者对流程图符号有了简单的认识。下面以一个数组选择排序算法
的流程图为例,学习简单的流程图,如图所示。

假设一个数组要从小到大排序,结合流程图来分析选择排序的过程:
第一步,在数组中选择出最小的元素,将它与0角标元素交换,即放在开头第1位。
第二步,除0角标元素外,在剩下的待排序元素中选择出最小的元素,将它与1角标元素交换,即放在第2位。
第三步,依次类推,直到完成最后两个元素的排序交换,就完成了升序排列。这样根据流程图来编写算法的指令代码,就会变得清晰简单。读者在以后设计算法时,最好先根据设计思路出算法的流程图,其次分析其可行性,最后再完成代码。
算法的特性
一个好的算法,尤其是一个成熟的算法,应该具有以下5个特性:
(1)确定性。算法的每一步都有确定的含义,不会出现二义性。即在相同条件下,只有一条执行路径,相同的输入只会产生相同的输出结果。
(2)可行性。算法的每一步都是可执行的,通过执行有限次操作来完成其功能。
(3)有穷性。一个算法必须在执行有穷步骤之后结束,且每一步都可在有穷时间内完成。这里的有穷概念不是数学意义上的,而是指在实际应用当中可以接受的、合理的时间和步骤。
(4)高效率与低存储。算法的效率通常指的是算法的执行时间,对于同一个问题的多种算法,执行时间短的其效率就高。存储量指的是算法在执行过程中所需的最大存储空间,包括所用到的内存及外存。设计算法时应考虑到执行效率和存储需求,设计出一个“性价比”较高的算法。
要设计出一个好的算法,就要综合考虑其正确性、可读性、健壮性,还要考虑其执行效率和存储量需求。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 0回复贴,共1页
<<返回河南it培训吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示