本章總共上機兩次。首先是最大子列和的問題。剛看到這道題目的時候,只是會想到用那種前面一直加然後再比較的想法,這種思想十分複雜。在老師的說明下,了解到用二分的方法,分別找出左邊和右邊的最大值,然後再看是否跨界的為最大。其實也算是一種子問題的劃分。第一次演算法上機的時候,我和同伴都是慌張的。以前上機的話,老師可能會把**大概給出來,然後這次是只是給了乙個思想。所以我也才明白到思想其實很重要,然後自己把**寫出來也有一定難度。經過和同伴的討論以及查一些資料,終於在自己的理解下把**敲出來了。這個時候其實收穫最大的是,要好好學習思想,然後鍛鍊自己的能力。
第二次上機是,找第k小的數,這道題我和同伴一直認為是快排思想的變形。因為在快排裡面,你要找的那個基準元素的位置是一定固定的。所以只要把基準元素的位置和我們找的那個位置比較,就可以得出結果
結對打**確實給了我不一樣的感覺。兩個人一起打**,其實會更有思想的碰撞,能夠更好地理解題目解決問題。希望接下來能夠更好地學習演算法的思想,能夠把**自己敲下來。
演算法第二章實踐報告
1.實踐題目名稱 最大子列和問題 2.問題描述 給定k個整數組成的序列,連續子列 被定義為,其中 1 i j k。最大子列和 則被定義為所有連續子列元素的和中最大者。例如給定序列,其連續子列有最大的和20。現要求你編寫程式,計算給定整數序列的最大子列和。3.演算法描述 通過分析,很容易發現最大子串行...
演算法第二章上機實踐報告
實踐題目名稱 找第k個小的數 問題描述 設計乙個平均時間為o n 的演算法,在n 1 n 1000 個無序的整數中找出第k小的數。演算法描述 就是先假設a left 為這個分界值x,然後排序。比較x是不是第k個如果是,返回這個值。如果不是比較一下x和a k 的大小,如果xa k 遞迴在x的右邊找 演...
演算法第二章上機實踐報告
7 1 最大子列和問題 20分 給定k個整數組成的序列,連續子列 被定義為,其中 1 i j k。最大子列和 則被定義為所有連續子列元素的和中最大者。例如給定序列,其連續子列有最大的和20。現要求你編寫程式,計算給定整數序列的最大子列和。本題旨在測試各種不同的演算法在各種資料情況下的表現。各組測試資...