文章 2024-06-13 来自:开发者社区

【数据结构】布隆过滤器原理详解及其代码实现

布隆过滤器(Bloom Filter)是一个占用空间很小、效率很高的随机数据结构,它由一个bit数组和一组Hash算法构成。可用于判断一个元素是否在一个集合中,查询效率很高(1-N,最优能逼近于1)。 在很多场景下,我们都需要一个能迅速判断一个元素是否在一个集合中。譬如: 网页爬虫对URL的去重,避免爬取相同的URL地址; 反垃圾邮件,从数十亿个垃圾邮件列表中判断某邮箱是...

【数据结构】布隆过滤器原理详解及其代码实现
文章 2024-04-03 来自:开发者社区

[数据结构与算法]贪心算法(原理+代码)

一、什么是贪心算法 贪心算法(Greedy Algorithm)是一种在每一步选择中都采取当前状态下最优解的策略,希望通过一系列局部最优的选择最终达到全局最优。贪心算法通常用于优化问题,其中在每个阶段都做出局部最优的选择,希望通过这种方式达到全局最优解。 贪心算法的主要特点是它对解的选择没有显式的规定,而是通过一系列的局部选择来达到整体最优。每一步都选择当前...

[数据结构与算法]贪心算法(原理+代码)
文章 2023-10-13 来自:开发者社区

数据结构:KMP算法的原理图解和代码解析

本篇总结的是关于串中的KMP算法解析应用场景现给定两个串,现在要看较短的一个串是不是较长的串的子串,如果是就输出子串后面的内容,如果不是则输出Not Found能匹配到:长串:qwertabcde短串:abcd则可以在长串中找到短串的内容,则输出abcde匹配不到:长串:qwertabcde短串:afcd则无法在长串中匹配到短串的内容,则输出Not Found算法方案对于如何匹配串的问题,首先是....

数据结构:KMP算法的原理图解和代码解析
文章 2022-06-29 来自:开发者社区

数据结构——二叉树的原理与代码应用

简介二叉树的相关概念,如,树高度,节点层数,节点度数,路径,叶节点,分支节点,根节点,父节点,左节点,右节点,兄弟节点,祖先节点,子孙节点,左子树,右子树等基本概念,不再赘述。二叉树分类1、完全二叉树若设二叉树的高度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第h层有叶子结点,并且叶子结点都是从左到右依次排布,这就是完全二叉树。一维数组可以作为完全二叉树的存储结构,堆....

数据结构——二叉树的原理与代码应用
文章 2022-06-29 来自:开发者社区

数据结构——哈希表(散列)原理与代码应用

什么是哈希表?哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。记录的存储位置=f(关键字)这里的对应关系f称为散列函数,又称为哈希(Hash函数),采用散列技术将记录存储在一块连续的存储空间中,这块连续存储空间称为....

数据结构——哈希表(散列)原理与代码应用
文章 2022-06-29 来自:开发者社区

数据结构——跳表的原理与代码应用

一、为什么选择跳表?目前经常使用的平衡数据结构有:B树,红黑树,AVL树,Splay Tree, Treep等。想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树出来吗?很难吧,这需要时间,要考虑很多细节,要参考一堆算法与数据结构之类的树,还要参考网上的代码,相当麻烦。用跳表吧,跳表是一种随机化的数据结构,目前开源软件 Redis 和 LevelDB 都有用到它,....

数据结构——跳表的原理与代码应用

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

算法编程

开发者社区在线编程频道官方技术圈。包含算法资源更新,周赛动态,每日一题互动。

+关注