遞迴分治 求集合最大元

2021-07-24 14:31:30 字數 445 閱讀 9729

在規模為n的資料元素集合中找出最大元。當n=2時,一次比較就可以找出兩個資料元素的最大元和最小元。當n>2時,可以把n個資料元素分為大致相等的兩半,一半有n/2個資料元素,而另一半有n/2個資料元素。 先分別找出各自組中的最大元,然後將兩個最大元進行比較,就可得n個元素的最大元。

#include using namespace std;

int max(int a,int b)

int zdy(int a,int l,int r)

else

}int main()

; int t=zdy(a,0,4);

cout測試資料在程式原始碼中已經給出,執行結果如下:

分治法求最大子串

最近在學分治法,涉及到很多問題都能用分治法解決,漢諾塔,快排,歸併排序等,下面是解決最大字串問題。1,用分治法解決,下面還介紹不用分治解決的另一種方法。include 分治法 int countstring int a,int start,int end void main int v counts...

分治策略 求最大子陣列

只有當陣列中包含負數時,最大子陣列問題才有意義。如果所有元素都是非負的,最大子陣列問題沒有任何意義,因為整個陣列和肯定是最大的 1 public class findmaxsubarraydemo 4int result arr findmaximumsubarray arr,0,arr.lengt...

演算法 分治法求集合劃分JavaScript版本

f n,m 表示把n個元素的集合分為m個子集,有多少種分法?理解一下return count ln 1,lm 1 lm count ln 1,lm n個元素的集合可以劃為f n,m 個不同的由m個非空子集組成的集合。考慮3個元素的集合,可劃分為 1個子集的集合 2個子集的集合 3個子集的集合 所以 ...