Python第一周小結

經歷了兩個星期Linux運維基礎的鋪墊,這周我們正式開始了python的學習。經過第一周的各種掙扎以及反復訓練,終于有所收獲了一點東西?,F在將第一周中學到的一個非常重要的算法技巧總結如下:

即:折半思想

例:給定一個不超過五位數的正整數,判斷該數有幾位數

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.www58058.com/93070

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

相關推薦

  • BIND在生產環境中的創建

    一、實驗:BIND二級域的搭建(均以yum安裝bind),從實驗圖中可以看出需要五臺虛擬機進行測試 一、準備五臺虛擬機 二、配置root服務器 1、YUM安裝bind的程序 2、配置bind的主配置文件 3、配置區域文件 4、為了實驗的方便進行,把防火墻和SElinux關閉,并留意區域文件的屬主屬組 5、檢查named的主配置文件和區域文件是否語法錯誤,并啟…

    Linux干貨 2016-10-05
  • 1、安裝配置介紹

    http://note.youdao.com/yws/public/redirect/share?id=b90faa657ee452edb27ab1a13fc7b0bc&type=false

    Linux干貨 2016-08-08
  • linux 入門基礎

    Linux概念部分: 1.CPU是Central Processing Unit的縮寫,即中央處理器。由控制器和運算器組成,是計算機系統種最要組成部分。2.內存是介于CPU和外部存儲之間,是CPU對外部存儲中成粗與數據進行高速運算時存放程序指令、數據和中間結果的臨時場所,它飛物理實質就是一組具備數據輸入輸出和數據存儲功能的高速集成電路。3.內存是CPU能直接…

    Linux干貨 2017-09-03
  • LVM

       本節主要為raid和LVM相關 一、作業 1、創建一個2G的文件系統,塊大小為2048byte,預留1%可用空間,文件系統ext4,卷標為TEST,要求此分區開機后自動掛載至/test目錄,且默認有acl掛載選項 2、寫一個腳本,完成如下功能: (1) 列出當前系統識別到的所有磁盤設備 (2) 如磁盤數量為1,則顯示其空間使用信息 …

    Linux干貨 2016-08-30
  • Linux Cluster之LVS

    一、Linux Cluster 基礎: Cluster:計算機集合為解決某個特定問題組合起來形成的單個系統 Linux Cluster類型: LB(Load Banlancing):負載均衡 HA(High Availability):高可用。提高服務可用性,避免出現單點故障 HP(High Performance):高性能 可用性衡量公式: A=MTBF/…

    2016-11-02
欧美性久久久久