1. 程式人生 > >第二章作業心得

第二章作業心得

對於二分法的理解:

二分搜尋:如果是有序的,直接對半平比較;如果是無序的,要結合快排思想,找陣列中任意數a(最方便的應該是第一個或最後一個)當做標杆,讓陣列其他數字比較大小分為邊,比較可以得出a是第幾小的,之後再根據需要的,捨棄掉該捨棄的,保留該保留的。

二分排序:二分也可以延伸到多分去。其實快排、歸併都有點類似,都是分塊處理。

總而言之,二分有兩個最明顯的特點,首先是,問題規模會變小;其次,分完還可以根據具體題目的需要,快速淘汰出不符條件的物件。

第二章作業情況:

分析完題目,我們都有了大概的思路。第一題求第k小的值,先自定義一個函式,然後採用二分加快排的方法,將陣列的第一個數當做標杆,進行比較,得出它是第x小的數,再講x和k對比,x>k則在小於標杆的那一塊遞迴呼叫,x=k直接得出答案,x<k就在大於標杆的那一塊做遞迴。在演算法理解這塊我們沒有什麼問題,但是到了程式設計的時候就會有一些小細節上的忽略,導致進行了多次修改,本身我自己的問題也比較大,在程式設計上有一定的問題,最後還是完成了。

第二題,求逆序對的題目,對於我們來說難度比較大,進行討論後,發現難以解決,就在網上找到了答案。但是後來我發覺找到的答案並不完全符合題目,所以第二題我還沒有完全解答出來,在此進行討論後覺得還是有些無法理解的問題,所以希望在課堂上老師有相應講解。