演算法導論隨筆1-1 二分查詢

我們這個系列叫隨筆,意味著寫起來會隨意一些。如果是一定要寫書評、或者是對書重難點歸納、或者是拓展的話可能就有些死板了,因此我用“隨筆”作為這個系列的標題。而且我並不是想按照順序一個個寫下來,而是希望按照我自己的想法來寫~希望大家能夠喜歡。

看一本書,先看哪裡?我覺得應該是先看序和前言的部分。其實有些內容還是比較重要的,比如它提到有些練習的答案可以在某個網址上檢視。還告訴你看這本書之前至少得學會一些程式設計的基本知識和初等微積分的技巧。

希望你能先自行掌握第一章和第三章。同時先把第四章完整看一遍。

我們先看一個問題:來自於中國石油大學程式設計競賽訓練平臺

2159: 【分治】折半查詢法

題目描述

大魔導師培根曾經說過:“讀書使人明智,讀詩使人聰慧,演算使人精密,哲理使人深刻,倫理學使人有修養,邏輯修辭使人善辯。”由此可見書籍的重要性是不言而喻的。而與書籍天天打交道的圖書管理員,更是奪天地之造化,吸日月之精華的“神之職業”

。據史料記載,魔法世界從古至今誕生的眾多不平凡的人物中,有不少人都曾經做過“圖書管理員”,如道家學派創始人老子,威軟公司創始人比耳、少林藏經閣的掃地神僧等等。所以,作為以馬虎自負出名的楚繼光,在魔法學院的社會實踐活動中又怎麼會放過這“天將降大任於斯人也”的必經鍛鍊呢。但想成為一個合格的圖書管理員並不容易,他必須能夠在一排(10000以內)已按編號大小排好序的圖書中,快速地按編號查詢到某本書所在的位置。

輸入

第一行是N,表示有N個元素,第二行是N個數,第三行是M表示要查詢的數。

輸出

一個數,即如找到該數,則輸出位置,否則輸出-1。

樣例輸入

3

2 4 6

4

樣例輸出

2

演算法導論隨筆1-1 二分查詢

演算法導論隨筆1-1 二分查詢