Python第一周小结

经历了两个星期Linux运维基础的铺垫,这周我们正式开始了python的学习。经过第一周的各种挣扎以及反复训练,终于有所收获了一点东西。现在将第一周中学到的一个非常重要的算法技巧总结如下:

即:折半思想

例:给定一个不超过五位数的正整数,判断该数有几位数

Code1:                                                                                Code2:

a = int(input(‘Please enter number1: ‘))                            a=int((input”Please enter a number:”))

if a<10:                                                                                      if a >= 100:
  print(“yiweishu”)                                                                         if a >= 10000:
elif a<100:                                                                                           print(5)
  print(“liangweishu”)                                                                    elif a >= 1000:
elif a<1000:                                                                                         print(4)
  print(“sanweishu”)                                                                       else:
elif a<10000:                                                                                      print(3)
  print(“siweishi”)                                                                     else:
elif a<100000:                                                                                  if a >= 10:
  print(“wuweishu”)                                                                              print(2)
                                                                                                              else:
                                                                                                                   print(1)

       通过对比这两组简单的代码,我们发现右边的代码明显的使用了折半的思想。具体体现为当判断一个不超过五位数的正整数时,由于该数最大可能出现的位数是五位,因此找到判断的中间点,即100。从100先开始判断起,比100大即进入循环,否则不进入。直接缩小了匹配的范围,对于算法效率的提升有显著的效果。因此,在以后遇到查找匹配以及图形打印等具有对称性质的类型分析时,适当的通过折半提升算法效率,不失为一个很好的选择。

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/93070

(0)
guoxingxingguoxingxing
上一篇 2018-03-26
下一篇 2018-03-26

相关推荐

  • 你收到来自一个来自noob的blog,请注意查收~

                  本人较为懒,部分内容为直接cp,勿怪                 图片借鉴余知乎某位深藏不漏的用户 关于ls命令输出结果的详解:     1 如何知道自己当前…

    2017-09-03
  • N25期–第七周作业

    1、创建一个10G分区,并格式为ext4文件系统; fdisk /dev/sda n p 2 enter +10G w partx -a /dev/sda (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; mke2fs -t ext4 -…

    Linux干货 2017-02-20
  • 马哥教育网络班21期-第五周课程练习

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; # grep -E "^[[::space]]\+.*" /boot/grub/grub.conf 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;…

    Linux干货 2016-08-08
  • nginx 配置参数说明和实验

    nginx.org 实验版本: 1.10.2 相关命令: # nginx -t //检查配置文件格式 #nginx -s reload //重新载入配置文件 实验: 主配文件大概组成 主配置文件的设定 /etc/nginx/nginx.conf events{..} //事件驱动相关 http{..} //网站服务相关 全局配置段解读与实验: user ng…

    2017-05-12
  • 马哥教育网络班21期+第6周课程练习

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@localhost ~]#cp /etc/rc.d/rc.sysinit /tmp/ [root@localhost&nbs…

    Linux干货 2016-07-29
  • n28 第二周作业

    n28 第二周作业

    Linux干货 2017-12-09