- 4
- 0
- 约5.77千字
- 约 14页
- 2016-12-28 发布于贵州
- 举报
给定数组a[0:n-1],试设计一个算法,在最坏情况下用n+[logn]-2次比较找出a[0:n-1] 中的元素的最大值和次大值. (算法分析与设计习题 2.16 ) (分治法)
算法思想
用分治法求最大值和次大值首先将问题划分,即将划分成长度相等的两个序列,递归求出左边的最大值次大值,再求出右边的的最大值次大值,比较左右两边,最后得出问题的解。
b、复杂度分析:
把问题划分为左右两种的情况,需要分别递归求解,时间复杂度可如下计算:
有递推公式为:
T(n)=1 n=1
T(n)= 2T(n/2)+1 n1
所以,分治算法的时间复杂度是n+[logn]-2,当n为奇数时,logn取上线,当n为偶数时,logn取下线。//不知道为什么会-2!
C、代码实现:
#include stdio.h
int a[100];
void maxcmax(int i,int j,int max,int cmax)
{
int lmax,lcmax,rmax,rcmax;
int mid;
if (i==j)
{
max=a[i];
cmax=a[i];
}
else if (i==j-1)
if (a[i]a[j])
{
max=a[j];
cmax=a[i];
}
else
{
max=a[i];
您可能关注的文档
最近下载
- 智慧农业无人机植保作业精准度分析方案.docx
- 《智能监测技术在农作物病虫害绿色防控中的应用与效果分析》教学研究课题报告.docx VIP
- 2025年浆砌石施工规范.pdf VIP
- 精神疾病与止痛素关系.docx VIP
- 部编版语文五年级上册第五单元教材解读大单元集体备课.pptx VIP
- 《牙齿的秘密》幼儿园班本课程PPT课件.pptx VIP
- 起点钠电PPT:2026全球钠电技术应用行业白皮书发布.docx VIP
- 2026年学习教育查摆问题清单及整改措施台账(四个方面16条).docx VIP
- 红色文创产品包装设计对青少年价值观教育影响的评价——基于AHP与IPA的实证分析.pdf VIP
- 基于无人机的农作物病虫害智能监测与精准防控系统研究及“三农”多场景应用分析.docx VIP
原创力文档

文档评论(0)