TODO:算法的初步理解之枚举算法

作者: OneTODO | 来源:发表于2017-03-23 22:29 被阅读28次

TODO:算法的初步理解之枚举算法

算法是软件的精髓。

反观计算机行业出身的人员,对于软件开发更多局限于与数据库的交互,即增、删、改、查。在做数据库交互主要用的算法是枚举算法。枚举算法的思想是,将问题的所有可能的答案一一列举,然后根据条件判断此答案是否合适,保留合适的,丢弃不合适的。如图枚举算法流程:

经典的枚举算法有“百钱买百鸡”,公鸡每只5元,母鸡每只3元,小鸡3只1元,用100元可以买100只鸡,问公鸡,母鸡,小鸡各多少只?这就是已知部分答案,求解未知问题。下面小O用Golang来简单实现,详细看源码注释。

输出的结果:

其中的趣味慢慢品尝吧。有兴趣的朋友可以把x,y,z的值改为0,会有意想不到的结果。这是golang语言的特性,值得注意,以免入坑。会算出这样的结果哈

枚举算法是编程中最常见的,在已知的答案范围内不断的去判断符合的条件,并输出结果。简单粗暴,有些破解软件就是使用这样的算法,进行暴力破解,不断尝试,最终获得答案。缺点就是运算量比较大,解题效率不高,在不超过200万次的枚举范围可以尝试使用枚举算法。

最近看到很多公司都在招聘算法工程师,有视觉算法,搜索算法,推荐算法,地理编码匹配算法等。随着科技的不断进步,算法的作用不断走进我们的现实中,而不是在科研中了。


wxgzh:ludong86

相关文章

  • TODO:算法的初步理解之枚举算法

    TODO:算法的初步理解之枚举算法 算法是软件的精髓。 反观计算机行业出身的人员,对于软件开发更多局限于与数据库的...

  • 2018-09-26 #Algorithm#最小生成树(Mini

    算法细节 有两种生成最小生成树的方式: Kruskal算法 Prim算法 TODO: 算法实现细节

  • 算法 -- 数组&链表 -- 01

    前端同学工作需掌握的相关算法内容。同系列文章(TODO): 算法复杂度 算法 -- 栈&队列 -- 02 算法 -...

  • 算法学习3_枚举

    枚举算法又称穷举算法枚举算法的核心思想 : 有序的尝试每一种可能 题一、 3 * 6528 = 3 * 8256 ...

  • 算法 | 枚举算法

    【算法思想】 利用计算机运算速度快的特点,对问题的所有可能答案一一列举,并逐一检验,符合条件的保留,不符合的丢弃。...

  • 回溯算法

    如何理解“回溯算法”? 回溯的处理思想,有点类似枚举搜索。我们枚举所有的解,找到满足期望的解。为了有规律地枚举所有...

  • 在不确定图(uncertain graph)中结合Bron-Ke

    参考资料:MULE算法不确定图上的枚举算法研究Bron-Kerbosch算法视频介绍Bron-Kerbosch算法...

  • Swift - 递归枚举

    个人理解 递归枚举是拥有另一个枚举作为枚举成员关联值的枚举,实际上就是Swift中枚举关联值的特性和递归算法在Sw...

  • 一位算法工程师的自我修养

    数据结构与算法 基本算法思想动态规划贪心算法回溯算法分治算法枚举算法 算法基础 时间复杂度 空间复杂度 最大复杂度...

  • 《算法笔记》4.4小节——算法初步->贪心

    @[TOC] Contest100000584 - 《算法笔记》4.4小节——算法初步->贪心 4.4小节——算法...

网友评论

    本文标题:TODO:算法的初步理解之枚举算法

    本文链接:https://www.haomeiwen.com/subject/uxxxottx.html