python使用分治法找序列最大值

2022-03-27 18:24:47 字數 603 閱讀 9106

最近上演算法導論課,說道分治法,回來想用python寫寫程式練練手,於是模仿一通寫了如下的**:

__author__ = '

day'

defarraymaxmin(array):

return

max(array)

defsort(init_array):

if len(init_array) <= 2:

print

(arraymaxmin(init_array))

else

: init_array=[init_array[i:i+2] for i in range(0,len(init_array),2)]

max_init_array=

for array in

init_array:

sort(max_init_array)

if__name__ == '

__main__':

array = [2,5,5,3,6,37,7,8]

sort(array)

方法實現了,可是現在問題來了。直接用max內建函式不是直接就解決問題了嗎,為什麼要使用分治法呢??

找中位數問題 分治法

題目 設a和b都是從小到大已經排好序的n個不等的整數構成的陣列,如果把a與b合併後的陣列記作c,設計乙個演算法找出c的中位數。解題思路 思路一 對將a和b合併數組成c,並且進行排序,然後直接輸出中位數。該演算法的時間複雜度為 o nlogn 空間複雜度為 o n 思路二 利用分治法。假定a 0,n ...

分治法找第K小的數PTA

分治法 找第k小的數 基本思路 用乙個基準數a 本題選用陣列的第乙個元素作為基準數 將s分割為兩部分,分別為小於等於a的s1和大於a的s2.記 s1 表示s1中元素的個數,s2 表示s2中元素的個數。這樣當 s1 k時,那麼第k小的數在s1中並且時s1中第k小的數 相反的,當 s1 define m...

使用分治法解最大連續子串行和問題

俺是菜鳥了解一下,這是我在演算法學習中的一些想法,如果有寫的不好的還請諒解,歡迎學習交流 3 問題 有長度為n的整數序列,求一段連續的子串行,要求該子串行的和為最大,並求出最大值。用分治法解決最大子串行和問題使用的是遞迴,它的思想是 1.將乙個長度為n的序列,一分為二變為兩個長度為n 2的子串行,繼...