(function() {
var s = "_" + Math.random().toString(36).slice(2);
document.write('
');
(window.slotbydup = window.slotbydup || []).push({
id: "u3646201",
container: s
});
})();
(function() {
var s = "_" + Math.random().toString(36).slice(2);
document.write('
');
(window.slotbydup = window.slotbydup || []).push({
id: "u3646162",
container: s
});
})();
什么是算法? 算法的5个基本特性是什么? 算法设计的要求?
1785 人参与 2018年08月18日 09:04 分类 : 数据结构精品文章 评论
算法的定义
通常,定义算法为"为解决某一特定任务而规定的一个指令序列"。
算法的5个基本特性
① 有输入。一个算法必须有0个或多个输入。它们是算法开始运算前给予算法的量。这些输入取自于特定的对象的集合。它们可以使用输入语句由外部提供,也可以使用赋值语句在算法内给定。
② 有输出。一个算法应有一个或多个输出,输出的量是算法计算的结果。
③ 确定性。算法的每一步都应确切地、无歧义地定义。对于每一种情况,需要执行的动作都应严格地、清晰地规定。
例1:
void fa( )
{
int x=5,y=10;
z=x+++y;//解释为:x+(++y)?(x++)+y?
printf("%d,%d,%d",x,y,z);
}
void fb( )
{
int x=5,y=10;
z=x+(++y); //x+++y解释为:x+(++y)
printf("%d,%d,%d",x,y,z);
}
void fc( )
{
int x=5,y=10;
z=(x++)+y; //x+++y解释为:(x++)+y
printf("%d,%d,%d",x,y,z);
}
④ 有穷性。一个算法无论在什么情况下都应在执行有穷步后结束。
例2:
void fa( )
{
int i=0,s=0;
while(i<10) //死循环
s++; //不满足有穷性
i++;
printf(“s=%d,i=%d\n“,s,i);
}
void fb( )
{
int i=0,s=0;
while(i<10) //i<10执行多少次
{
s++; //s++执行?次
i++; // i++ 执行?次
}
printf(“s=%d,i=%d\n“,s,i);
}
⑤ 有效性。算法中每一条运算都必须是足够基本的。就是说,它们原则上都能精确地执行,甚至人们仅用笔和纸做有限次运算就能完成。
例3:
求和:S=1+2+3+...+∽ //不可以实现。
算法设计的要求
1)正确性
a.无语法错误;
b.对n组输入产生正确结果;
c.对特殊输入产生正确结果;
d.对所有输入产生正确结果。
2)可读性:“算法主要是为了人的阅读与交流”。
3)健壮性
4)高效与低存储量
来源:我是码农,转载请保留出处和链接!
本文链接:http://www.54manong.com/?id=16
(function() {
var s = "_" + Math.random().toString(36).slice(2);
document.write('
');
(window.slotbydup = window.slotbydup || []).push({
id: "u3646208",
container: s
});
})();
(function() {
var s = "_" + Math.random().toString(36).slice(2);
document.write('
');
(window.slotbydup = window.slotbydup || []).push({
id: "u3646147",
container: s
});
})();
window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdPic":"","bdStyle":"0","bdSize":"16"},"share":{},"image":{"viewList":["qzone","tsina","tqq","renren","weixin"],"viewText":"分享到:","viewSize":"16"},"selectShare":{"bdContainerClass":null,"bdSelectMiniList":["qzone","tsina","tqq","renren","weixin"]}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];
数据结构 微信号:qq444848023 QQ号:444848023
加入【我是码农】QQ群:864689844(加群验证:我是码农)
<< 上一篇
下一篇 >>
(function() {
var s = "_" + Math.random().toString(36).slice(2);
document.write('
');
(window.slotbydup = window.slotbydup || []).push({
id: "u3646186",
container: s
});
})();
(function() {
var s = "_" + Math.random().toString(36).slice(2);
document.write('
');
(window.slotbydup = window.slotbydup || []).push({
id: "u3646175",
container: s
});
})();
jQuery(document).ready(function($){
/* prepend menu icon */
$('#daohangs-around').prepend('
');
/* toggle nav */
$("#caidan-tubiao").on("click", function(){
$("#daohangs").slideToggle();
$(this).toggleClass("active");
});
});
评论专区