数据结构域算法系列之二 贪婪算法和人生规划

简介: 数据结构域算法系列之二 贪婪算法和人生规划

视频课:https://edu.csdn.net/course/play/7621


前几天和苯螃蟹聊天,谈到对未来的规划。螃蟹说自己要在5年以后做到像某大牛那样熟知一切专业知识并且做到写文章信手拈来。说完自己的,就来问我“5年内的职业规划是什么?”我其实是那种平时想事情根本不过脑子的人,怎么会整天没事琢磨5年规划?于是我老实告诉她:“我没有5年规划,我觉得只要做好自己遇到的每一件事,就自然能够通向最好的结果。”



苯螃蟹听了以后大惊:“你怎么能够没有规划呢?!”


难怪苯螃蟹会惊讶万分。因为是我告诉了她读者文摘上那个关于怎样规划自己的人生成为画家的故事,还举一反三了怎样成为百万富婆的故事来加深印象。现在我又告诉她,我说了那么多,骗她相信规划人生的妙用,其实自己是不承认的了!但是我确实是觉得5年规划是没有用的。于是我又花费了很多口舌来向她描述APR用到的一种算法:“贪婪算法”,以实例来说明自己的观点。大概的意思就是,5年规划的目的看起来很明确,但是需要做无数存在变数的事情才能抵达最终的目的。每做一件事情的时候都存在选择,与最终目的间隔5年时间的我们永远也不知道每一个细小选择背后的路到底通向哪里。那么与其在迷失方向的森林里朝着自以为是的方向前进,不如选择去做目光所及之处的最重要的事情。当然诸葛亮的目光会亮一些,猪哥俩的目光暗淡一些。


其实我确实是那种平时脑子里什么也没有的人,做事情凭直觉的居多。不过我想这应该不是一种返祖现象。当有人问我这些我自己从来也不想的东东的时候,我就会按照当时的语境现编一个出来。因为几十年的生活告诉我,要是我告诉人家我没想法,那人家要不以为我是个傻子就会以为我看不起他。至于我自己到底相信什么说法,那个真是鬼知道了。我都不会去想,又怎么知道自己是怎么想的?但是苯螃蟹的的确确是一个意志坚定的人。尽管我把贪婪算法说的天花乱坠,她还是坚信5年规划的妙用,以及一定要有一个目的存在才能有发展这个道理。看来只能等5年以后见分晓了。看到时候第一个5年计划完成的时候,绵羊家姓羊还是姓蟹,就知道了。哈哈。不过说实话,我高度怀疑,苯螃蟹这么相信 5年规划的妙用,是我上回讲如何嫁给百万富翁的时候超水平发挥了。


##########我是分隔线##########


参考文献1:


故事大概是这样的。一个人问自己的朋友怎么在5年能够成为能够谋生的有名的画家。朋友告诉他,要在5年后成为画家,并且能够谋生,第4年的时候应该已经卖出了第一幅画,并且有很多作品在画廊里办画展了;第3年的时候应该已经有很多完成的画作了,并且有一些画廊的朋友;那么第2年的时候应该已经掌握了绘画艺术,在进行艺术创作了;为了达成第二年的目的,现在就应该辞职,搬到艺术家聚居区去,报名艺术学院学习绘画了。为了让苯螃蟹能够深入理解,俺还特意举一反三的给苯螃蟹假设了怎样在5年以内成为百万富婆的人生规划。


如果5年后要成为百万富婆,最简捷的方式就是嫁给百万富翁。


那么在第4年半的时候一定会有一个百万富翁结婚对象,并每天用各种方式接近目标;第4年的时候你要用自己的魅力和气质来结识百万富翁,并得到几个不错的候选;如果要结识百万富翁的话,那么在第3年的时候应该在百万富翁出入的地方出入,当然在那里打工的也是可以;那么第2年的时候应该已经在百万富翁出入的会所和俱乐部打工了,而且不能是刷盘子的工作;为了提高命中率和回头率,那么在第1年的时候应该去一家女子学校学习礼仪、形体、文秘,还要兼修艺术和音乐,以提升魅力和气质;那么现在就应该好好努力工作,攒够去女子学校的学费。苯螃蟹听完这个故事以后深以为然,还特意把这两个故事都记载在自己的BLOG上。


##########我是分隔线##########


参考文献三2:


算法非我所长。贪婪算法的大概意思就是,需要解决一个需要巨大运算量来求解的问题的时候,不费心费力去寻找最优解,而是采用逐步构造最优解的方法。在每个阶段,都作出一个看上去最优的决策(在一定的标准下)。作出贪婪决策的依据称为贪婪准则。决策一旦作出,就不可再更改。贪婪算法通过逐步逼近的方法来的得到解,不一定是最优解,但总是很快找到一个解决方法。这个算法在IC design中可以用来解决自动布线中的最短路径问题:在一大堆点中,从某一个点出发,用最短的线把这一堆点串起来。


目录
相关文章
|
16天前
|
存储 人工智能 算法
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
这篇文章详细介绍了Dijkstra和Floyd算法,这两种算法分别用于解决单源和多源最短路径问题,并且提供了Java语言的实现代码。
49 3
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
|
19天前
|
机器学习/深度学习 存储 缓存
数据结构与算法学习十:排序算法介绍、时间频度、时间复杂度、常用时间复杂度介绍
文章主要介绍了排序算法的分类、时间复杂度的概念和计算方法,以及常见的时间复杂度级别,并简单提及了空间复杂度。
18 1
数据结构与算法学习十:排序算法介绍、时间频度、时间复杂度、常用时间复杂度介绍
|
12天前
|
存储 算法 Java
Set接口及其主要实现类(如HashSet、TreeSet)如何通过特定数据结构和算法确保元素唯一性
Java Set因其“无重复”特性在集合框架中独树一帜。本文解析了Set接口及其主要实现类(如HashSet、TreeSet)如何通过特定数据结构和算法确保元素唯一性,并提供了最佳实践建议,包括选择合适的Set实现类和正确实现自定义对象的hashCode()与equals()方法。
29 4
|
19天前
|
搜索推荐 算法
数据结构与算法学习十四:常用排序算法总结和对比
关于常用排序算法的总结和对比,包括稳定性、内排序、外排序、时间复杂度和空间复杂度等术语的解释。
14 0
数据结构与算法学习十四:常用排序算法总结和对比
|
19天前
|
存储 缓存 分布式计算
数据结构与算法学习一:学习前的准备,数据结构的分类,数据结构与算法的关系,实际编程中遇到的问题,几个经典算法问题
这篇文章是关于数据结构与算法的学习指南,涵盖了数据结构的分类、数据结构与算法的关系、实际编程中遇到的问题以及几个经典的算法面试题。
26 0
数据结构与算法学习一:学习前的准备,数据结构的分类,数据结构与算法的关系,实际编程中遇到的问题,几个经典算法问题
|
23天前
|
机器学习/深度学习 存储 算法
【数据结构与算法基础】——算法复杂度
【数据结构与算法基础】——算法复杂度
|
19天前
|
机器学习/深度学习 搜索推荐 算法
探索数据结构:初入算法之经典排序算法
探索数据结构:初入算法之经典排序算法
|
19天前
|
算法 Java 索引
数据结构与算法学习十五:常用查找算法介绍,线性排序、二分查找(折半查找)算法、差值查找算法、斐波那契(黄金分割法)查找算法
四种常用的查找算法:顺序查找、二分查找(折半查找)、插值查找和斐波那契查找,并提供了Java语言的实现代码和测试结果。
16 0
|
20天前
|
算法 决策智能
基于prim算法求出网络最小生成树实现网络社团划分和规划
该程序使用MATLAB 2022a版实现路线规划,通过排序节点权值并运用Prim算法生成最小生成树完成网络规划。程序基于TSP问题,采用遗传算法与粒子群优化算法进行路径优化。遗传算法通过编码、选择、交叉及变异操作迭代寻优;粒子群优化算法则通过模拟鸟群觅食行为,更新粒子速度和位置以寻找最优解。
|
22天前
|
存储 算法 Java
数据结构和算法--分段树
数据结构和算法--分段树
11 0