循环打印算法:不拘一格编程序之一计算机二级考试

文章作者 100test 发表时间 2009:07:25 10:23:55
来源 100Test.Com百考试题网


  编辑特别推荐:

  全国计算机等级考试(等考)指定教材

  全国计算机等级考试学习视频

  全国计算机等级考试网上辅导招生

  全国计算机等级考试时间及科目预告

  百考试题教育全国计算机等级考试在线测试平台

  全国计算机等级考试资料下载

  全国计算机等级考试论坛

  计算机等级考试四级应用题解析汇总

  2009年下半年全国计算机二级考试报名时间从6月1日起已经开始报名。详情点击:2009年下半年全国计算机等级考试各地报名点汇总。2009年下半年全国计算机二级考试时间是2009年9月19日至23日。更多优质资料尽在百考试题论坛 百考试题在线题库

  小说中经常有人说某某将领打仗天马行空,不拘一格,让敌人防不胜防,比如《寻秦记》中的李牧;比如《大唐双龙传》中的寇少。
  编程序时也要有怎样的思想,不能被条条框框所束缚,比如这个例子:
  【例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)。
  编写软件不拘一格,并不是要你编什么程序都剑走偏锋,而是说当走普通的路不通的时候,或者非常难走时,别完了试试其它的路。就像以上算法,各自有其优缺点,都有其自己的适用范围,切勿只用一种包打天下,也切勿为了眩耀而使用不适用的算法。

  2009年9月全国计算机等级考试时间及科目预告

  2009年NCRE考试有新变化

  2009年全国计算机等级考试-大纲

  全国计算机等级考试历年真题及答案

  2009年上半年全国计算机等级考试试题及答案



相关文章


全国计算机等级考试二级应试指导及应试技巧计算机二级考试
循环的各种形式:不拘一格编程序之四计算机二级考试
变量取值交换的方法:不拘一格编程序之三计算机二级考试
俄罗斯方块新增行算法:不拘一格编程序之二计算机二级考试
循环打印算法:不拘一格编程序之一计算机二级考试
VC 实现局域网嗅探QQ号计算机二级考试
常用数据类型使用转换详解计算机二级考试
C 实例:求2至N(2≤N≤500)之间的素数计算机二级考试
C 系统相关:如何安全终止线程计算机二级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛