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 20:17
下一篇 2018-03-26 20:22

相关推荐

  • Jerry首作_linux基础

    一、计算机的组成及其功能 硬件 冯·洛伊曼体系 控制器(Control):是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。 运算器(Datapath):运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。 存储器(Memory):存储器的功能是…

    Linux干货 2016-10-25
  • Linux初识

    一 .计算机的关键部位 cpu(运算器 控制器):正给计算机的中枢神经,对程序控制信息的处理和 对数据的运算 存储器:存储程序数据和各种信息指令 Input:起到将各个外部信息传递给计算机的作用 output:将计算机内部的各个信号数据及计算结果输出 二 .一些主流Linux发行版简介 linux发行版:linux只是一个操作系统,搭配其它软件发行的系统就是…

    Linux干货 2016-10-30
  • linux中的vim

    什么是vim:     Linux 在命令行下的文本编辑器,很多个别软件的编辑接口都会主动调用vim,所以在 Linux 的系统中使用文字编辑器来编辑你的Linux参数配置文件,在 Linux 的世界中,绝大部分的配置文件都是以 ASCII 的纯文本形态存在,因此利用简单的文字编辑软件就能够修改设置.所有的Unix L…

    Linux干货 2016-08-11
  • 一.Liunx博客-2016年7月19日文件系统类型、分区类型

    格式说明: 操作 概念 命令 说明及举例 一.文件系统类型、分区类型 转换磁盘文件系统命令 convert e: /fs:ntfs su – root 切换到root用户 linux根 /windows根 \ cd \ home:用户root:usr:tmp:临时文件dev:硬件设备 IDE /dev/hda…

    Linux干货 2016-08-23
  • 文件权限

    文件属主、文件属组、
    文件权限、目录权限、特殊权限

    2018-03-13
  • Gitlab代码管理仓库安装部署

    GitLab是利用 Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查…

    2016-07-26