使用分治思想求出n個元素中的最大值

2021-10-08 07:58:10 字數 660 閱讀 7150

基本思路:

1.可以將這n個元素分成兩組,分別求出兩組的最大值,然後將這兩組的最大值進行比較,進而求出全部元素的最大值

2.如果每一組中的元素多於兩個,則再用上述方法繼續分為兩組,直至每一組至多只包含兩個元素為止。

#include

#include

#include

void

merge

(int

*arr,

int low,

int high,

int&max)

else

if(low==high-1)

//序列中剛好有兩個實數

else

}else

else}}

}int

main()

;srand

(time

(null))

;for

(int i=

0;i)for

(int i=

0;i)printf

("\n");

merge

(a,0

,n-1

,maxnum)

;printf

("%d\n"

,maxnum)

;}

對乙個正整數n,求出n 中末尾0的個數。

對乙個正整數n,求出n 中末尾0的個數。輸入輸入有若干行。每一行上有乙個整數t,是測試資料組數,接著有t行,每一行包含乙個確定的正整數n n 1000000000 輸出對輸入行中的每乙個資料n,輸出一行,其內容是n 中末尾0的個數。輸入樣例 輸出樣例 3 3 0 100 24 1024 253 下邊...

n個元素中取m個元素的組合 排列問題

n個元素中取m個元素的組合 如a則有這些組合 1,2,3,12,13,23,123 我們可以把問題分解如下 1 求陣列中由1到n個元素的組合f n,m m 1 m n n為陣列元素個數 2 對於f n,m 我們從陣列中任意取乙個元素,然後再從剩下的n 1個元素中取m 1個元素,既f n 1,m 1 ...

分治法求乙個N個元素陣列的逆序數

背景 逆序數 也就是說,對於n個不同的元素,先規定各元素之間有乙個標準次序 例如n個 不同的自然數,可規定從小到大為標準次序 於是在這n個元素的任一排列中,當某兩個元素的先後次序與標準次序不同時,就說有1個逆序。乙個排列中所有逆序總數叫做這個排列的逆序數。定義在乙個排列中,如果一對數的前後位置與大小...