贪心算法之最大的子组合求解
来源:互联网 发布:淘宝指数数据查询 编辑:程序博客网 时间:2024/06/06 00:07
本来博主是没有心情写这篇博客了,因为昨天住的地方遭贼了。半夜两点多,偷开我家窗户,把博主卧室里面的玫瑰金给偷走了。当时博主就睡得特别不舒服,半夜醒来就发现手机被偷了。搞得博主后半夜基本没有睡,万幸的是,博主的手机开了“查找iphone”功能,因此开启了丢失模式之后,任小贼再牛逼,刷了机也用不了。虽然拿不回来,也要恶心死小偷。所以,在此,博主也提醒各位博友,一定一定要将iphone的“查找iphone功能”打开。
回到正题吧,前两天在复习数据结构和算法,也看了一些算法题。于是,就将自己碰到的且学习了的算法题,贡献到博客中,以备温故而知新嘛。
贪心算法又称为扫描算法,在《编程珠玑》这本书中有介绍,说实话,我是因为不懂这个算法才去看的这本书,而不是从书中看到这个算法。贪心算法是一种有缺陷的算法。主要思想就是通过求解局部最优解来获得全局最优解的算法。主要是这个算法无法考虑到所有的情形,所以在某一些的场景中是十分有效,但适用性不广。下面就是这个算法的一个实例应用。
求一个数组中的所有子组中最大的一个。例如:-1,2,5,3,-2,5,-3中最大的子组和为2,5,3,-2,5这个子组。下面就给出这个算法的实现代码,代码异常简单,但是设计思想非常狡猾。
int GetMax(int m,int n){ return m>n?m:n;}
int MaxSubArray(int array[],int length){ int maxendhere = 0; int maxsofar=0; for(int i = 0;i < length;i++){ maxendhere = GetMax(maxendhere + array[i] ,0);// 求出了数组中a[i]之前的最优子组
maxsofar = GetMax(maxendhere ,maxsofar); // 从子组中获得最大的子组} return maxsofar;}
0 0
- 贪心算法之最大的子组合求解
- 求解最大连续子数组的算法
- 数据结构之最大子序列的求解
- 编程珠玑读书笔记之----->使用线性算法求解连续子序列的最大和
- 求最大子数组的和,算法导论之分治递归求解,暴力求解,记忆扫描方法。
- 算法初步--求最大子数组和【暴力|优化枚举|贪心 】求解
- 算法笔记1-最大子序列和问题的求解
- 求解最大子列和问题的四种算法
- 【算法学习】最大子数组问题的分治法求解
- 最大子数组问题的分治求解算法
- 【数据结构与算法】最大子序列和问题的求解
- 最大子序列求解及分治算法的一些例子
- 求解最大子序列和问题的线性时间算法
- 1768:最大子矩阵( 4.6算法之贪心)
- 连续子数组最大和或最大子段和的求解算法及其正确性
- 最大子序问题求解算法 笔记
- 求解最大子序列算法及比较
- 搜索算法-求解最大子数组
- C++语言实现1到100的偶数,奇数;(初学者)
- Android开发时提示非法字符的解决方法
- Android的音乐播放器使用service
- amq消息队列-rabbitMQ
- 2.3 Android进程间通信(IPC)----Server和Client获得Service Manager远程接口
- 贪心算法之最大的子组合求解
- ora-02095无法修改指定的初始化参数
- Android studio 快捷键
- Android应用开发之所有动画使用详解
- postgresql搭建
- (四)IBM Sterling OMS 环境构建之补丁安装
- springmvc 自定义异常处理
- 有限状态机的FPGA实现
- http://www.devstore.cn/code/info/87.html