随笔分类 - [41]Algorithm算法
-
树结构之二叉树操作
摘要:《数据结构与算法》之二叉树(补充) 一.树结构之二叉树操作 二叉树的查找 二叉搜索树,也称二叉排序树或二叉查找树 二叉搜索树:一棵二叉树,可以为空,如果不为空,应该满足以下性质: 非空左子树的所有结点小于其根结点的键值 非空右子树的所有结点大于其根结点的键值 左右子树都是二叉搜索树 对于二叉树的查找 阅读全文
-
Bloom Filter 介绍
摘要:聊聊布隆过滤器(原理篇) Redis系列1:深刻理解高性能Redis的本质Redis系列2:数据持久化提高可用性Redis系列3:高可用之主从架构Redis系列4:高可用之Sentinel(哨兵模式)Redis系列5:深入分析Cluster 集群模式 追求性能极致:Redis6.0的多线程模型追求性 阅读全文
-
动态规划状态转移方程
摘要:【技术积累】算法中的动态规划【一】 合集 - 【技术积累】数据结构和算法(11) 1.【技术积累】数据结构中的基本概念【一】06-212.【技术积累】算法中的基本概念【一】06-213.【技术积累】数据结构中栈与队列及其相关算法【一】07-094.【技术积累】数据结构中的二叉树及其相关算法【一】06 阅读全文
-
贪心算法的时间和空间复杂度
摘要:如何证明一个问题可以使用贪心算法解决? 判断一个问题是否可以使用贪心算法解决,通常需要满足两个条件: 贪心选择性质:问题的最优解可以通过一系列局部最优解得到。也就是说,在每一步选择中,都选择当前最优解,而不考虑之后的影响。 最优子结构性质:问题的子问题的最优解可以推导出原问题的最优解。也就是说,问题 阅读全文
-
什么是算法?
摘要:扎实打牢数据结构算法根基,从此不怕算法面试系列之001 week01 02-01 什么是算法? 1、什么是算法? 为了明确什么是算法,我们会从简单的查找功能开始讲起。 查找其实一个一个非常简单的算法,但我们会为这个查找功能的算法做如下工作: 让查找的功能适应更多的数据类型 通过查找的例子讲解如何编写 阅读全文
-
复杂度
摘要:复杂度分析:如何分析、统计算法的执行效率和资源消耗 作者:京东物流 崔旭 我们都知道,数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,如何让代码更省存储空间。所以,执行效率是算法一个非常重要的考量指标。那如何来衡量你编写的算法代码的执行效率呢?这里就要用到我们今天要讲的内容: 阅读全文
-
基于TF-IDF(词频-逆向文档频率)的酒店名称模糊匹配
摘要:TF-IDF(词频-逆向文档频率),想要达到的目的是用语料中的词语,来代表这个语料想要表达的意思。其作用可用于对文档提取关键词,关键字。其思想用中文来表达其实很直观,什么样的词语能够代表一个文档呢,最极端的状况当然是这个词在所有的文档集合中,只出现在这个文档,而其他文档是没有出现过的。这里面涉及到了 阅读全文
-
布隆过滤器用 C# 实现 Bitmap
摘要:从位图到布隆过滤器,C#实现 前言 本文将以 C# 语言来实现一个简单的布隆过滤器,为简化说明,设计得很简单,仅供学习使用。 感谢@时总百忙之中的指导。 布隆过滤器简介 布隆过滤器(Bloom filter)是一种特殊的 Hash Table,能够以较小的存储空间较快地判断出数据是否存在。常用于允许 阅读全文
-
十道算法题
摘要:十道算法题 最近不少小伙伴跟我交流刷题肿么刷,我给的建议就是先剑指offer和力扣hot100,在这些题中还有些重要程度和出现频率是非常非常高的,今天给大家分享当今出现频率最高的10道算法题,学到就是赚到。 0X01翻转链表 力扣206和剑指offer24原题,题意为: 给你单链表的头节点 head 阅读全文
-
Hash,一般翻译做散列,或音译为哈希
摘要:Hash,一般翻译做散列,或音译为哈希 一文讲透一致性哈希的原理和实现 为什么需要一致性哈希 首先介绍一下什么是哈希 Hash,一般翻译做散列,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值 阅读全文
-
算法-维特比和隐马尔可夫模型
摘要:维特比算法和隐马尔可夫模型的解码 一、概述 维特比算法是安德鲁.维特比(Andrew Viterbi)于1967年为解决通信领域中的解码问题而提出的,它同样广泛用于解决自然语言处理中的解码问题,隐马尔可夫模型的解码是其中典型的代表。无论是通信中的解码问题还是自然语言处理中的解码问题,本质上都是要在一 阅读全文
-
服务限流
摘要:服务限流原理及算法 限流是啥?维基百科是这样解释的:在计算机网络中,频率限制被应用在控制网络接口收到或发送的请求频次,它可以被用来阻止dos攻击或者是网络爬虫。直白点说,就是限制服务收到或发出的请求频次,保证整体服务可以正常健康的使用。谈到这里有人会想,只要我服务处理的速度足够快,那么频次高点也没问 阅读全文
-
学习算法必备数学
摘要:熬了几个通宵,终于把初中到大学的数学知识梳理完了(学习算法必备数学知识) 作者简介:常遇,阿里巴巴高级技术专家,一直关注前端和机器学习邻域相关技术,在知乎和微信公众号的“全栈深入”分享深度硬核技术文章。 下面的基础数学知识涉及很多数学公式,这些公式编辑起来累S我了。如果你觉得有帮助请帮忙点个赞、收个 阅读全文
-
数据结构算法复杂度
摘要:常用数据结构算法复杂度速查 原文:http://bigocheatsheet.com/ 阅读全文
-
Codeforces,Topcoder,SGU,Timus,ProjectEuler
摘要:世界顶级选手的刷题之道 dreamoon,知名中国台湾籍ACM选手,此为他的codeforces曲线: 关于中间突降的那段,还有个小故事: 当时dreamoon已经是世界上的顶级选手,甚至前一场的div1他排名第3!(当时cf的分制和现在不同,所以现在看起来只是个红名) 由于他没有拿到过div2的第 阅读全文
-
PageRank算法的思想
摘要:基于胜率矩阵的PageRank排序 在做博弈模型评估的时候,遇到一个问题是如何评价多个模型的优劣。例如我有训练好的三个围棋模型A,B,C,两两之间对打之后有一个胜负关系,如何对这三个模型进行排序呢?通常对于人类选手这种水平有波动的情形,棋类比赛通常计算选手Elo得分按分值排序,足球篮球等通过联赛积分 阅读全文
-
十几亿的大数据判断是否存在---布隆过滤器
摘要:布隆过滤器,你也可以处理十几亿的大数据 文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱 什么是 BloomFilter 布隆过滤器(英语:Bloom Filter)是 1970 年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。主要用于判断一个元素是 阅读全文
-
数据结构和算法可视化工具——Data Structure Visualizations
摘要:正好最近关注到学习数据结构和算法的两个工具,特别好用。下面我就分别介绍下这两个工具,各位可以收藏一下,说不定以后能用到。 第一个工具是数据结构和算法可视化工具——Data Structure Visualizations。该工具由旧金山大学开发,地址: https://www.cs.usfca.ed 阅读全文
-
JS实现图结构
摘要:JavaScript实现图结构 JavaScript实现图结构 一、图论 1.1.图的简介 什么是图? 图结构是一种与树结构有些相似的数据结构; 图论是数学的一个分支,并且,在数学中,树是图的一种; 图论以图为研究对象,研究顶点和边组成的图形的数学理论和方法; 主要的研究目的为:事物之间的联系,顶点 阅读全文
-
时间复杂度
摘要:时间复杂度到底怎么算 算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。 那么我们应该如何去衡量不同算法之间的优劣呢? 主要还是从算法所占用的「时间」和「空间」两个维度去考量。 阅读全文