- 8
- 0
- 约3.47千字
- 约 37页
- 2017-07-05 发布于四川
- 举报
算法分析与设计——分治法
南阳理工学院软件学院 胡吉兴
分治法
分治法的基本思想
归并排序及其优化
快速排序、众数问题
分治算法分析
分治法的基本思想
将原问题分解为若干个同质但规模较小的子问题,各个子问题规模大致相同。
对这些子问题分别进行求解(经常表现为递归调用)。
对各个子问题的解进行合并,从而得到原问题的解。
归并排序(合并排序)
void mergeSort(int arr[],int temp[],int begin,int end)
{
int mid;
if(beginend)
{
mid=(begin+end)/2;
mergeSort(arr,begin,mid);
mergeSort(arr,mid+1,end);
merge(arr,begin,mid,end);
}
}
归并排序:有序表合并
void merge(int *arr,int *temp,begin,mid,end)
{
int i=begin,j=mid+1,k=begin;
while(i=midj=end)
{
if(arr[i]=arr[j]) temp[k++]=arr[i++];
else temp[k++]=arr[j++];
}
while(i=mid) temp
原创力文档

文档评论(0)