数据结构与算法分析(C++第三版)第二章问题总结
2017-10-11 15:13
225 查看
第二章
求解方法:
算法1:时间复杂度O(N3)
算法2:时间复杂度O(N2)
算法3:时间复杂度O(NlogN)
算法4:时间复杂度O(N)
在线编译网址:http://www.anycodes.cn/zh/
书中代码如图所示:
(1)最大子序列和问题
求解方法:
算法1:时间复杂度O(N3)
算法2:时间复杂度O(N2)
算法3:时间复杂度O(NlogN)
//编写实现 //编写网址:http://www.anycodes.cn/zh/ #include <iostream> #include <string> #include <vector> #include <algorithm> using namespace std; int maxvalue(vector<int>&a ,int left,int right){ if(left==right){ if(a[left]>0){ return a[left]; }else{ return 0; } } int center=(left+right)/2; int maxleft=maxvalue(a,left,center); int maxright=maxvalue(a,center+1,right); int borderleftmax=0,borderleftsum=0; for(int i=center;i>=left;i--){ borderleftsum+=a[i]; if(borderleftsum>borderleftmax){ borderleftmax=borderleftsum; } } int borderrightmax=0,borderrightsum=0; for(int i=center+1;i<=right;i++){ borderrightsum+=a[i]; if(borderrightsum>borderrightmax){ borderrightmax=borderrightsum; } } int merge=borderleftmax+borderrightmax; return max(max(maxleft,maxright),merge); } int main() { int arraym[]={-2,11,-4,13,-5,-2}; vector<int> m(arraym,arraym+6); cout<<maxvalue(m,0,5)<<endl; return 0; }
算法4:时间复杂度O(N)
(2)二分搜索
给定一个整数X和整数A1、A2、A3......AN−1,后者已经预先排序在内存中,求下标i使得Ai=X,如果X不再数据中,则返回-1。//自己编写的代码,可在下述在线编译网址上运行成功 #include <iostream> #include<vector> using namespace std; int main() { int arraym[]={-1,-2,3,5,6,9,15}; vector<int> a(arraym,arraym+7); int x=6; int m=0,n=a.size()-1; int center=(m+n)/2; while(m!=n){ if(a[center]==x) {cout<<center<<endl;break;} else if(a[center]>x) {n=center;} else { m=center;} center=(m+n)/2; } if(a[center]!=x) cout<<"-1"<<endl; return 0; }
在线编译网址:http://www.anycodes.cn/zh/
书中代码如图所示:
(3)欧几里得算法
(4)幂运算
相关文章推荐
- 常见C++面试问题总结2
- C# 调用C++ dll问题总结一 ——无法找到dll
- 2.10 第二章总结加综合问题
- C++面试问题总结 1
- 转:VS2005 & VS2008 对C++转换中问题总结
- 面试常见C++问题总结
- C/C++学习笔记8:内存中数据对齐的问题总结
- C++技术问题总结-第15篇 内存泄露有哪些方法定位,崩溃有哪些方法定位
- 第二章 C++基础篇之最全面的C/C++编码规范总结
- C++技术问题总结-第9篇 智能指针
- 数据结构与算法分析笔记与总结(java实现)--链表7:含环链表找环入口结点问题
- 数据结构与算法分析笔记与总结(java实现)--链表16:单链表判断是否有环问题
- 图论-拓扑排序(学习数据结构与算法分析 C++第三版—clifford A.Shaffer著)有感
- 【总结】C++ 出现内存问题
- C#调用C++dll问题总结
- 《剑指offer》面试题57 删除链表中重复的结点 C++ 实现 以及 错误总结 (指针问题)!!
- 搜索总结c++ 内存泄露问题
- C++面试中常被问的sizeof问题总结
- C/C++字节对齐问题总结
- openwrt各种奇怪问题总结(对C++依赖)