
算法
文章平均质量分 65
诗人不写诗
当你足够努力时,全世界都会给你让路
展开
-
五大算法思想之贪心算法
贪心算法是说在对问题进行求解时,总是选择对当前最好的选择,不必考虑整体,所以他追求的是局部最优解,不一定能得到整体最优解,对于哪种下一步结果只依赖上一步结果,不受其他因素影响的问题,贪心算法是个不错的选择。 实际问题1 假设有n个正整数,将他们组合成一个最大的正整数。 例如:有三个正整数,3,31,32,组成的最大正整数是32331 有四个正整数,5,78,12,90,组成的最大正整数是9078512 这种问题的性质,就是只看当前的,保证当前组合最大,最后整体的结果就是最大的,所以这里的贪心的对的。原创 2022-03-22 13:43:00 · 549 阅读 · 0 评论 -
B树和B+树
B+树只有叶子节点包含数据,非叶子节点只有索引,B+树的叶子节点也在同一层,这一点和B树一样,但是B+树的叶子节点通过指针链接,所以是按索引顺序形成的链,这样在根据索引进行范围查询时也会很快。B树和B+树组织的数据都存放在磁盘上,而且实际使用时,数据量不会小,所以在进行查询时,是需要多次进行磁盘IO操作的,mongodb使用b树的原因是他多进行key的搜索,数据分布在节点上,平均下来磁盘IO会较少,如果使用B+树,必须进行到叶子节点才能取出数据,平均下来磁盘IO会较多。(没有连续的红节点)原创 2020-11-15 17:43:44 · 472 阅读 · 0 评论 -
算法5大要素
输入: 算法具有0个或多个输入 输出: 算法至少有1个或多个输出 有穷性: 算法在有限的步骤之后会自动结束而不会无限循环,并且每- 一个步骤可以在可接受的时间内完成 确定性:算法中的每一步都有确定的含义,不会出现二义性 可行性:算法的每一步都是可行的,也就是说每一步都能够执行有限的次数完 ...原创 2019-11-09 20:22:22 · 5078 阅读 · 0 评论 -
经典排序算法【复制】
0、算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。 线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。 0.2 算法复杂度 0.3 相关概念 ...原创 2018-12-29 14:26:24 · 235 阅读 · 0 评论 -
浮点数在计算机中为什么不精确
计算机使用二进制方式进行存储并计算,只是显示方式通过应用软件转换为十进制的方式,我们输入的通常情况下都是10进制的数据,当然也有8进制或16进制,在输入的时候,将数据转换成二进制,转换这个过程对用户透明,所以是由操作系统来代工完成的,至于操作系统是否调用硬件完成就不得而知。在有效范围内计算机能准确存储整形数字,因为这些二进制能表示的整形基数由1、2、4、8、16......这些组成,他们组合相加能...原创 2019-03-24 23:56:48 · 2245 阅读 · 0 评论