###分治法的核心思想是将一个复杂的问题分为N个简单的小问题### #####所以分治法的第一步,就是要将问题“分”开##### #####第二步,是进行“治”##### #####或许还有第三步、第四部,因问题而异##### #####当我们遇到一个很大的问题,我们感觉无从下手,这时候我们就可以使用分治法进行操作了。我们将这一个问题的特殊实例划分成若干个子问题了,并且这些自问题在一定程度上更小了,就是说,原问题的规模n更小了,至此,第一步完成了。##### #####这时候我们可以进行第二步,将若干个小问题解决,并且将其结果合并成大问题的解,以上就是分治法的基本思想#####
######在归并排序算法中######
private static void merge(int[] a,int start,int m,int t){
int[] tmp=new int[t-start+1];
int i=start,j=m,k=0;
while(i<m&&j<=t){
if(a[i]<=a[i]){
tmp[k]=a[i];
k++;
i++;
}else{
j++;
k++;
}
}
while(i<m){
tmp[k]=a[j];
j++;
k++;
}
System.arraycopy(tmp, 0, a, start, tmp.length);
}
public static void mergeSort(int[] a,int start,int len){
int size = a.length;
int mid = size/(len<<1);
int c = size&((len<<1)-1);
if(mid==0)
return;
//进行一次归并
for(int i=0;i<mid;++i){
start=i*2*len;
merge(a, start, start+len, (len<<1)+s-1);
}
//将剩下的数和倒数一个有序集合归并
if(c!=0){
merge(a, size-c-2*len, size-c, size-1);
//递归
mergeSort(a, 0, 2*len);
}
}
###斐波那契数列### ####斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)####