在規模為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個子集的集合 所以 ...