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

相关推荐

  • 马哥教育网络班20期+第1周课程练习

    1、描述计算机的组成及其功能。  (1)组成:运算器、控制器、存储器、输入设备、输出设备  (2)功能:数值计算、数据处理、自动控制、辅助设计、辅助教学、人工智能、娱乐活动 2、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。  (1)主要发行版本之间关系    基于slackware:sus…

    Linux干货 2016-06-23
  • ubuntu kylin虚拟机安装KVM

    1.确定物理机CPU是否支持虚拟化    查看方法1:计算机->属性->处理器(Inter(R) Core(TM) i5-2450M),然后去网上查看自己的电脑CPU是否支持虚拟化,    地址http://ark.intel.com/zh-cn/找到自己CPU的信息,虚拟化技术后是否显示为yes,如果是n…

    Linux干货 2016-10-15
  • 系统启动流程 grub

    grub CentOS 6启动流程: POST —> Boot Sequence(BIOS) —> Boot Loader —>Kernel(ramdisk) —> rootfs —> switchroot —> /sbin/init—>(/etc/inittab, /etc/init/*.conf) —> 设…

    Linux干货 2016-09-16
  • 自我介绍

    个人简介     基本信息:     何秋雨,男,安徽人,22岁,初中学历 工作经验:     目前就职于南京的一家互联网公司做Java Web 开发,大概有一年半的工作经验。工作内容包括前端和Java后端两个部分。 个人爱好:   &nb…

    Linux干货 2016-08-08
  • LAMP分离环境的搭建(最新版本的mysql+php+http源码编译安装)

    实验者:FrankStar      实验日期:20150628 任务:主要是实现在Linux环境下配置LAMP环境,利用VMware+centos6.4实现,将LAMP分离为多台主机; 附注:由于大家的环境不一样,可能有些人已经安装了这个包或者那个软件,所以调试的环境结果也不一样,为了尽量能模拟到 可能出现的所有问题,在编译会…

    Linux干货 2015-06-30
  • LVM2学习总结

    LVM2(Logical Volume Manager 2) 原理: 将底层的物理硬盘抽象地封装起来,以逻辑卷的方式呈现给上层应用,但对于文件系统而言,对LVM的操作与对硬盘分区的操作并无差别。 实现基础: Linux内核的Device mapper机制,将一个或多个底层块设备组织成一个逻辑设备 基本元素: PP(Physical Partition):物理…

    Linux干货 2016-08-22