1. 程式人生 > >第二章實踐報告

第二章實踐報告

一次 以及 title 函數 car 不存在 變量 提高 得到

實驗題目:

7-1 二分查找

輸入n值(1<=n<=1000)、n個非降序排列的整數以及要查找的數x,使用二分查找算法查找x,輸出x所在的下標(0~n-1)及比較次數。若x不存在,輸出-1和比較次數。

輸入格式:

輸入共三行: 第一行是n值; 第二行是n個整數; 第三行是x值。

輸出格式:

輸出x所在的下標(0~n-1)及比較次數。若x不存在,輸出-1和比較次數。

輸入樣例:

4 1 2 3 4 1

輸出樣例:

0 2

就實踐報告第一題而言,它的題目是使用二分查找算法查找x,輸出x所在的下標(0~n-1)及比較次數。若x不存在,輸出-1和比較次數。一開始我就想到將數分配到一個數組裏,比較後就可以返回下標。然後用一個遞歸函數,一直到比較出x為止。這裏遇到一個障礙,就是如何在x不存在的時候輸出-1並且輸出比較次數,最後將t設為全局變量才得以解決。除了n個數所需的數組空間和幾個設定的變量外不需要其他空間,所以空間復雜度為O(n)。

於我而言,在每一次做題的過程是提升最快的時候,因為在這中間我能夠從具體的題目中熟悉題目引申出來的知識點和算法思想。看到這次實踐題的第一題,我就想到前不久做過的作業的算法思想,然後就試著用類似的思想去解決這道新的算法題,最後得到了正確的運行結果。於是,我既成功解題,也順利的運用了自己一直都有點害怕的遞歸調用。所以我最大的感受就是,你付出了多少就會得到多少,把每一道題、每一行代碼、每一個思想都嚼細了,你就會不自覺的提高了。

第二章實踐報告