O(N)+x=2*O(N/2)+2*x

a*O(N)+x=a*(2*O(N/2)+x)+x=2*a *O(N/2)+(a+1)*x 由此可知,时间复杂度可达到O(n);

3.分治策略一定导致递归吗?如果是,请解释原因。如果不是,给出一个不包含递归的分治例子,并阐述这种分治和包含递归的分治的主要不同。

不一定导致递归。

如非递归的二叉树中序遍历。

这种分治方法与递归的二叉树中序遍历主要区别是:应用了栈这个数据结构。

4. 对于待排序序列(5, 3, 1, 9),分别画出归并排序和快速排序的递归运行轨迹。

归并排序:

第一趟:(5,3)(1,9); 第二趟:(3,5,1,9); 第三趟:(1,3,5,9);

快速排序:

第一趟:5( ,3,1,9);//5为哨兵,比较9和5 第二趟:5(1,3, ,9);//比较1和5,将1挪到相应位置; 第三趟:5(1,3, ,9);//比较3和5; 第四趟:(1,3,5,9);

5. 设计分治算法求一个数组中的最大元素,并分析时间性能。

//简单的分治问题

//将数组均衡的分为“前”,“后”两部分

//分别求出这两部分最大值,然后再比较这两个最大值

#includeusing namespace std;

extern const int n=6;//声明 int main() { int a[n]={0,6,1,2,3,5};//初始化 int mid=n; int num_max1=0,num_max2=0; for(int i=0;i<=n;++i)//前半部分 { if(a[i]>num_max1) num_max1=a[i];

} for(int j=n+1;jnum_max2) num_max2=a[j]; } if(num_max1>=num_max2) cout<

cout<

时间复杂度:O(n)

6. 设计分治算法,实现将数组A[n]中所有元素循环左移k个位置, 要求时间复杂性为O(n),空间复杂性为O(1)。例如,对abcdefgh循环左移3位得到defghabc。

//采用分治法

//将数组分为0-k-1和k-n-1两块 //将这两块分别左移 //然后再合并左移

#include using namespace std;

void LeftReverse(char *a, int begin, int end) {

for(int i=0;i

int temp=a[begin+i]; a[begin+i]=a[end-i]; a[end-i]=temp; } }

void Converse(char *a,int n,int k) {

LeftReverse(a, 0, k+1); LeftReverse(a, k, n+1);

LeftReverse(a, 0, n-1); for(int i=0;iint main() {

char a[7]={'a','b','c','d','e','f','g'}; Converse(a,7,3);

return 0; }

7. 设计递归算法生成n个元素的所有排列对象。

#include using namespace std;

int data[100];

//在m个数中输出n个排列数(n<=m) void DPpl(int num,int m,int n,int depth) {

if(depth==n) {

for(int i=0;ifor(int j=0;jif((num&(1

DPpl(0,5,1,0);

DPpl(0,5,2,0); DPpl(0,5,3,0); DPpl(0,5,4,0); DPpl(0,5,5,0);

return 0; }

8. 设计分治算法求解一维空间上n个点的最近对问题。

参见4.4.1最近对问题的算法分析及算法实现

9. 在有序序列(r1, r2, ?, rn)中,存在序号i(1≤i≤n),使得ri=i。请设计一个分治算法找到这个元素,要求算法在最坏情况下的时间性能为O(log2n)。

//在有序数组中

//采用二分法查找符合条件的元素

#includeusing namespace std;

void Findnum(int *a,int n) {

int low=0; int high=n-1;

while(low<=high) {

int mid=(low+high)/2; if(a[mid]==mid) { cout

数据结构与算法c语言版胡明课后答案,算法设计与分析(第2版) 王红梅 胡明 习题答案...相关推荐

  1. 计算机算法设计与分析第四版复习,计算机算法设计与分析(第4版)第1章.ppt

    <计算机算法设计与分析(第4版)第1章.ppt>由会员分享,可在线阅读,更多相关<计算机算法设计与分析(第4版)第1章.ppt(50页珍藏版)>请在人人文库网上搜索. 1.计算 ...

  2. 计算几何学习总结(使用教材算法设计与分析(第二版))

    ** 计算几何总结(使用教材算法设计与分析(第二版)李春葆 清华大学出版社) ** (代码大部分为书中原有代码,如有雷同,实属正常.) #include<bits/stdc++.h> us ...

  3. php 红包算法,PHP语言:实现微信红包拆分算法

    本文主要向大家介绍了PHP语言:实现微信红包拆分算法,通过具体的内容向大家展示,希望对大家学习php语言有所帮助. · 修复最后一个红包输出未保留2位数 · 修复领取的红包金额低于最小红包限制 * 红 ...

  4. 人工免疫算法c语言实例,毕业设计_蚁群算法模拟系统的设计与实现.doc

    J I A N G S U U N I V E R S I T Y 本 科 毕 业 论 文 蚁群算法模拟系统的设计与实现 Ant Colony Simulation System Design and ...

  5. 栅格法路径算法C语言,基于地图栅格与QPSO算法结合的机器人路径规划方法与流程...

    本发明属于机器人路径规划领域,提出一种基于地图栅格与QPSO结合的机器人路径规划方法. 背景技术: 移动机器人路径规划是寻找一条无碰撞的可行路径问题的方法.近些年,群智能优化算法逐渐成为移动机器人路径 ...

  6. 机械臂运动学算法c语言,6轴工业机械臂运动学算法(C++) 六轴机械臂运动学源码 - 下载 - 搜珍网...

    6轴工业机械臂运动学算法 6轴工业机械臂运动学算法\.cproject 6轴工业机械臂运动学算法\.project 6轴工业机械臂运动学算法\.settings 6轴工业机械臂运动学算法\.setti ...

  7. 极值跟踪算法 c语言,快速约束极值子空间跟踪算法_魏志强.pdf

    快速约束极值子空间跟踪算法_魏志强 34 4 Vol. 34 No. 4 第 卷第 期 华 北 水 利 水 电 学 院 学 报 2013 8 Journal of North China Instit ...

  8. SDU 2021.1 算法设计与分析考试 回忆版

    SDU 2021.1 计科 算法设计与分析考试 计算题 DFSDFSDFS:画出深度优先树:给出每个点的开始时间和结束时间:给出每条边的分类 有向图上的多源最短路径,要求计算distancematri ...

  9. pbkdf2 算法 C语言实现,密码学基础之PBKDF2算法

    站点登录需要输入用户名和密码,而密码属于个人敏感数据,应当只保存密码的单向哈希值.简单的哈希值,无法防止彩虹表攻击,使用基于口令的密钥派生算法PBKDF2可以解决这种问题. PBKDF2 需要以下输入 ...

  10. 计算机算法设计与分析期末试题,算法设计与分析期末考试试卷(D卷)(含答案).doc...

    算法设计与分析期末考试试卷(D卷) 一.选择题(0分,每题分) .D A.n2/2 + 2n的渐进表达式上界函数是O(2n) B.n2/2 + 2n的渐进表达式下界函数是Ω(2n) C.logn3的渐 ...

最新文章

  1. 七骑士android版上线时间,腾讯独代韩手游《七骑士》今日全面公测
  2. Chorme控制台console的用法;
  3. 给枚举值增加扩展数据
  4. 愿岁月可回首,从家族营销到Android开发
  5. 1-9月全国快递服务企业业务量累计完成561.4亿件 同比增长27.9%
  6. 台式电脑已连接但无法上网_【PC】电脑网络连接正常但无法正常上网?教你几种解决办法!...
  7. java object类的方法,JAVA中Object类中 有几个方法?
  8. Silverlight学习之贪吃蛇游戏
  9. 利用python进行数据分析书籍_利用Python进行数据分析 (O'Reilly精品图书系列) 内省...
  10. 计量经济学笔记2---最大似然估计
  11. java写便签_JAVA编写便签纸
  12. virtualbox设置了共享文件夹却无权限访问
  13. 视频教程-ps基础课程绝对初级,小白听得懂-Photoshop
  14. office 2016下载安装
  15. ML之LoR:基于信用卡数据集利用LoR逻辑回归算法实现如何开发通用信用风险评分卡模型之以toad框架全流程讲解
  16. 加密 php代码,php代码加密
  17. 2022深圳杯A题论文
  18. showModalDialog兼容版
  19. 上新啦~《2021年中国云安全行业研究报告》(附下载)
  20. ECharts——条形图

热门文章

  1. 六大洲客户的特点,收藏备用~
  2. RTSP-传送ACC音频文件
  3. python报错记录No.1
  4. UEFI开发探索22 – 环境搭建3(使用UDK2018搭建)
  5. 1 使用WPE工具分析游戏网络封包
  6. java就业培训教程 笔记
  7. Powerpoint中VBA编程技巧
  8. php 生成xls解决乱码,怎么解决php导出excel文件乱码问题
  9. eclipse关联KEmulator模拟器开发J2ME游戏
  10. 湖南大学操作系统期末考试之英文PPT复习提纲