`
runfeel
  • 浏览: 935801 次
文章分类
社区版块
存档分类
最新评论

不拘一格编程序——循环打印算法

 
阅读更多
不拘一格编程序之一
循环打印算法
小说中经常有人说某某将领打仗天马行空,不拘一格,让敌人防不胜防,比如《寻秦记》中的李牧;比如《大唐双龙传》中的寇少。
编程序时也要有怎样的思想,不能被条条框框所束缚,比如这个例子:
【例1】编写一个函数void fun(int t),要求在屏幕上打印t个“*”号,其中t的长度不会大于50。

【设计1】:
void fun(int t)
{
if (t<0 || t>50)return;
switch(t)
{
case 1: printf("*");break;
case 2: printf("**");break;
此处删除500字
case n: printf("*****......**");break;
}
}
以上方法虽然笨拙,但是时间复杂度为O(1),快!这是牺牲空间换取时间。
当然,编写设计一的人员一般不多,绝大多数人使用设计2。
【设计2】:
void fun(int t)
{
int i;
if (t<0 || t>50)return;
for(i=0;i<t;i++) printf("*");
}
以上算法是最正宗的算法!优点是:程序相当简单,思路相当清晰。缺点是时间复杂度为O(t)。
设计3】:
void fun(int t)
{
char *p="****************************************************************************************";
char buf[51];
if (t<0 || t>50)return;
memcpy(buf, p, t);
buf[t]=0;
printf(buf);
}
乍一看,真麻烦,但是时间复杂度O(1)。有人说,那前面的memcpy等代码就不耗费时间了吗?答曰:1、memecpy的时间花费远远printf等屏幕显示类函数底。2、就算是空循环体的for循环再编译后也会产生若干行代表,比memcpy要慢。
但是这里增加了p和buf的存储空间。
【设计4】
void fun(int t)
{
char*p;
if (t<0 || t>50)return;
if (!(p = (char *)malloc(t+1)))return;
memset(p, '*', t);
p[t]=0;
printf(p);
free(p);
return;
}
与设计3类似,但与其相比,减少了多余的空间浪费,但是去增加了malloc内存分配操作和memset内存设置操作,相对增加了时间耗费。时间复杂度O(1)。
编写软件不拘一格,并不是要你编什么程序都剑走偏锋,而是说当走普通的路不通的时候,或者非常难走时,别完了试试其它的路。就像以上算法,各自有其优缺点,都有其自己的适用范围,切勿只用一种包打天下,也切勿为了眩耀而使用不适用的算法。
相关文章:不拘一格编程序之一循环打印算法
不拘一格编程序之二俄罗斯方块新增行算法
不拘一格遍程序之三变量取值交换算法

不拘一格编程序之四循环的各种形式

《计算机达人成长之路——憧憬与迷茫篇》终于上市了,现在已经在网上预售,预售地址为:

当当网:http://product.dangdang.com/product.aspx?product_id=22457857

卓越网:http://www.amazon.cn/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BE%BE%E4%BA%BA%E6%88%90%E9%95%BF%E4%B9%8B%E8%B7%AF-%E6%9C%B1%E4%BA%91%E7%BF%94/dp/B005DIQMGU/ref=sr_1_1?ie=UTF8&qid=1311338256&sr=8-1

互动出版:http://product.china-pub.com/198427&chinapub=eqf&website_id=55880&eu_id=53013396_s6729905

各位《计算机达人成长之路》的粉丝们,感谢大家的支持,现在新书终于出版了,请大家:有钱的捧个预订,有人的到豆瓣网上做一个5星评价!

豆瓣地址为:

http://book.douban.com/subject/6729905/

我在豆瓣的主页为:

http://www.douban.com/people/zyxhp/

希望大家一如既往的支持!
分享到:
评论

相关推荐

    实用算法的分析与程序设计

    《实用算法的分析与程序设计》是一本深入探讨算法理论与实践的书籍,旨在帮助读者理解和掌握编程中的关键算法,并能有效地应用到实际问题解决中。这本书涵盖了算法的基础概念、设计策略、分析方法以及实现技巧,是...

    新鲜打造个人网站:不拘一格——用JavaScript改造窗口

    半个月的时间一晃而过,大家在运用JavaScript的技能方面又有什么新体会吗?今天我们就要对JavaScript进行综合演练,在演练过程中,除了会复习前面讲到的一些内容之外,还将学习到一些新知识,温故而知新嘛,通过不断...

    中小PCB企业:不拘一格降人才.pdf

    中小PCB企业:不拘一格降人才.pdf

    《不拘一格》读后感800字之自由与责任.docx

    ### 《不拘一格》读后感之自由与责任工作法解析 #### 一、引言 《不拘一格》一书深入探讨了全球知名流媒体巨头网飞(Netflix)独特的企业文化及其自由与责任工作法。作者通过对网飞内部运作机制的详细描述,为读者...

    同义词大全——可导入火车头

    不拘一格,形形色色 不堪设想,不可思议 不堪一击,摧枯拉朽 不可动摇,见异思迁 不可多得,车载斗量 不可救药,病入膏肓 不可开交,不亦乐乎 不可企及,指日可待 不可胜数,数不胜数 不可一世,妄自菲薄 不劳而获,坐享其成 ...

    《小市民》——青色极简UI风格精美小清新ppt模板.rar

    《小市民》——青色极简UI风格精美小清新PPT模板是一款专为追求简约、清新设计风格的用户量身打造的设计资源。该模板采用了时下流行的扁平化设计,结合了青色调的视觉元素,营造出一种既专业又不失生活气息的展示...

    小伙伴学习组织的建设策略———灵活、多元、自由.doc

    3. 灵活多元的组织策略:小伙伴学习的组织形式不拘一格,可以是固定的四人小组,也可以根据学生的特点和能力进行异质分组,如将具有不同优势的学生组合在一起,提升团队整体能力。此外,还可以进行同质分组,让能力...

    创新成就品牌——全球最大的信息管理软件供应商ORACLE的发展历程.pdf

    1978年,公司更名为“关系软件公司”(RSI),1979年推出了世界上首款商用SQL关系数据库——Oracle数据库第二版,尽管实际上这是第一版,这一策略是为了吸引更多的客户。 Oracle数据库的成功并非偶然,它在技术上的...

    开源技术大会2014-LarryWall演讲《无心插柳——开源萌发在那个春天》

    开源技术大会2014上,Perl编程语言的创始人拉里·沃尔(Larry Wall)的演讲题目为《无心插柳——开源萌发在那个春天》。在这次演讲中,拉里·沃尔分享了开源技术早期发展的历史,并探讨了开源精神及其与创新之间的...

    公司培训学习总结——范文..doc

    公司重视人才的发掘与培养,推行不拘一格的用人机制,让员工有机会从基层做起,通过实际工作表现来展现能力。此外,公司还建立了人才激励机制,通过提案改善激励制度,对解决生产、管理问题的员工给予奖励,以激发...

    板书式思维导图在自考课程中的应用——以《计算机网络原理》为例.pdf

    "板书式思维导图在自考课程中的应用——以《计算机网络原理》为例" 本文探讨了板书式思维导图在自考课程中的应用,特别是在《计算机网络原理》课程中的实践。板书式思维导图是一种结合板书和思维导图的教学方法,...

    全南事业编招聘2018年考试真题及答案解析打印版.docx

    【全南事业编招聘2018年考试真题及答案解析打印版.docx】文件包含的是一份关于事业单位招聘考试的真题集,涵盖了多项选择题和其他类型的题目,涉及的知识点广泛,主要包括逻辑推理、数学计算、经济学原理、法律基础...

    杜甫——《绝句四首》(其三)精选.doc

    在杜甫的绝句中,我们还可以看到一种不拘一格的创新。如“堂西长笋别开门,堑北行椒却背村。梅熟许同朱老吃,松高拟对阮生论。”这样的诗句,通过日常生活的小景,表现了诗人与周围环境的和谐共处,以及他对人性和...

    第八届北威州创意汉语比赛“不拘一格”学汉语

    第八届北威州创意汉语比赛“不拘一格”学汉语

    工业机器人 亦可不拘一格.pdf

    工业机器人技术是现代制造业中不可或缺的自动化工具,它通过模仿人类的动作执行复杂的任务,以...随着技术的不断进步,未来的工业机器人将在更多领域展现其不拘一格的能力,成为推动工业自动化和智能化进程的关键力量。

    管理学原理第一次作业——唐太宗识人用人之道PPT课件.pptx

    他广泛吸纳人才,不拘一格降人才,形成了一个多元化且充满活力的人才库。在唐朝初期,唐太宗便广纳房玄龄、杜如晦等贤士,这些人不仅有卓越的才能,还具备高尚的品德。房玄龄以其智谋深得唐太宗信任,而杜如晦则以...

    数据结构讲义(严蔚敏版)

    尽管语言风格不拘一格,但目的是为了让读者更容易地理解和应用所学知识。由于篇幅限制,讲义并未详尽解释所有概念和术语,因此建议与严蔚敏的教材结合使用。每章末尾还配备有各种难度的习题,以供练习,并附有参考...

    Experimentation:如果我遇到了我想测试的新想法,算法或功能(使用任何语言),我都会将其保留在此处

    这样的工作方式对于推动科技进步至关重要,因为许多重大发现和突破往往源于不拘一格的思考和实验。 标签为"C",意味着这些实验可能与C语言有关。C语言是一种基础且强大的编程语言,以其高效、可移植性和对底层硬件...

    1己亥杂诗——学习ppt课件

    - **不拘一格降人才**:“不拘一格”指的是不局限于传统的模式或框架,“降人才”则是指选拔人才。这句话表达了作者对于人才选拔不应受限的主张。 ### 思想情感 这首诗通过生动形象的语言,表达了作者对当时社会...

Global site tag (gtag.js) - Google Analytics