Fork me on GitHub

随笔分类 -  数据结构与算法

摘要:LZ77简介 Ziv和Lempel于1977年发表题为“顺序数据压缩的一个通用算法(A Universal Algorithm for Sequential Data Compression )”的论文,论文中描述的算法被后人称为LZ77算法。值得说的是,LZ77严格意义上来说不是一种算法,而是一种 阅读全文
posted @ 2023-07-11 14:22 stardsd 阅读(65) 评论(0) 推荐(0) 编辑
摘要:一、概述Ο,读音:big-oh;表示上界,小于等于。 Ω,读音:big omega、欧米伽;表示下界,大于等于。 Θ,读音:theta、西塔;既是上界也是下界,称为确界,等于。 ο,读音:small-oh;表示上界,小于。 ω,读音:small omega;表示下界,大于。 Ο是渐进上界,Ω是渐进下 阅读全文
posted @ 2023-06-27 17:04 stardsd 阅读(685) 评论(0) 推荐(0) 编辑
摘要:首先借用有心人士的一张相当直观清晰的图来划分各种协议:开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别 以下是上述协议的简单介绍:BSD开源协议BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作 阅读全文
posted @ 2021-04-13 15:07 stardsd 阅读(380) 评论(0) 推荐(0) 编辑
摘要:总结: 可迭代对象:list、dict都是可迭代对象,但不是迭代器 实现了next方法,则称迭代器 进一步的,如果惰性生成,就成为生成器,生成器分为生成器表达式和生成器函数(yield) 生成器 通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含1 阅读全文
posted @ 2021-04-12 16:26 stardsd 阅读(202) 评论(0) 推荐(0) 编辑
摘要:1.实数数的表示 参考深入理解C语言-03-有符号数,定点数,浮点数 1.1定点数 一般在没有FPU寄存器的嵌入式系统中使用比较多。比如常见的32位系统中,将高16位作为整数部分,低16位作为小数部分。这样就可以用整数来模拟定点数的 + - * / 运算。关于定点数的数学分析,请参考以下文档:htt 阅读全文
posted @ 2021-03-30 16:02 stardsd 阅读(13229) 评论(0) 推荐(0) 编辑
摘要:上一篇讲了LZW编码,本篇讨论另一种不同的编码算法,算数编码。和哈夫曼编码一样,算数编码是熵编码的一种,是基于数据中字符出现的概率,给不同字符以不同的编码。本文也会对这两种编码方式的相似和不同点进行比较。 编码原理 算数编码的原理我个人感觉其实并不太容易用三言两语直观地表达出来,其背后的数学思想则更 阅读全文
posted @ 2021-02-08 11:39 stardsd 阅读(3422) 评论(0) 推荐(0) 编辑
摘要:''' 给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字符的最小子串。 示例: 输入: S = "ADOBECODEBANC", T = "ABC" 输出: "BANC" 说明: 如果 S 中不存这样的子串,则返回空字符串 ""。 如果 S 中存在这样的子串,我们保证它 阅读全文
posted @ 2020-08-21 13:26 stardsd 阅读(264) 评论(0) 推荐(0) 编辑
摘要:这篇文章讲无权二分图(unweighted bipartite graph)的最大匹配(maximum matching)和完美匹配(perfect matching),以及用于求解匹配的匈牙利算法(Hungarian Algorithm);不讲带权二分图的最佳匹配。 二分图:简单来说,如果图中点可 阅读全文
posted @ 2020-01-15 15:11 stardsd 阅读(2558) 评论(0) 推荐(0) 编辑
摘要:# 下面给出python的实现,使用murmurhash算法 import mmh3 from bitarray import bitarray # zhihu_crawler.bloom_filter # Implement a simple bloom filter with murmurhas 阅读全文
posted @ 2019-08-14 15:44 stardsd 阅读(716) 评论(0) 推荐(0) 编辑
摘要:在网络理论中,小世界网络是一类特殊的复杂网络结构,在这种网络中大部分的节点彼此并不相连,但绝大部分节点之间经过少数几步就可到达。 在日常生活中,有时你会发现,某些你觉得与你隔得很“遥远”的人,其实与你“很近”。小世界网络就是对这种现象(也称为小世界现象)的数学描述。用数学中图论的语言来说,小世界网络 阅读全文
posted @ 2019-04-08 16:09 stardsd 阅读(13659) 评论(0) 推荐(0) 编辑
摘要:首先给出wiki地址:http://en.wikipedia.org/wiki/Beam_search 1.简介 Beam Search(集束搜索)是一种启发式图搜索算法,通常用在图的解空间比较大的情况下,为了减少搜索所占用的空间和时间,在每一步深度扩展的时候,剪掉一些质量比较差的结点,保留下一些质 阅读全文
posted @ 2019-03-18 15:51 stardsd 阅读(12630) 评论(0) 推荐(0) 编辑
摘要:约瑟夫问题求解及优化 问题描述 在一间房间总共有n个人,给定一个数k,然后按照如下规则去杀人: 所有人围成一个圆圈,按顺时针依次给所有人编号:1, 2, 3…, n 由编号1开始报数,按顺时针方向,报到数字k的人将被杀掉 被杀掉的人从房间内被移走,从被杀的下一个人重新由1开始报数 报到数字k的人再次 阅读全文
posted @ 2018-10-03 16:49 stardsd 阅读(261) 评论(0) 推荐(0) 编辑
摘要:动态规划 代码实现在https://github.com/Jensenczx/...维基百科对动态规划的定义 动态规划(英语:Dynamic programming,简称DP)是一种在数学、计算机科学和经济学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重 阅读全文
posted @ 2018-09-09 20:54 stardsd 阅读(595) 评论(0) 推荐(0) 编辑
摘要:回溯是啥 用爬山来比喻回溯,好比从山脚下找一条爬上山顶的路,起初有好几条道可走,当选择一条道走到某处时,又有几条岔道可供选择,只能选择其中一条道往前走,若能这样子顺利爬上山顶则罢了,否则走到一条绝路上时,只好返回到最近的一个路口,重新选择另一条没走过的道往前走。如果该路口的所有路都走不通,只得从该路 阅读全文
posted @ 2018-09-03 23:18 stardsd 阅读(314) 评论(0) 推荐(0) 编辑
摘要:需求描述: 有m个任务,第i个任务需要xi时间去完成,难度等级为yi 有n台机器,每台机器最长工作时间为zi,机器等级wi 一个任务只能交给一台机器,且如果机器的最长工作时间小于任务所需时间,则不能完成 若完成任务,获得收益为200*xi+3*yi 一台机器一天只能完成一个任务,若机器等级小于任务难 阅读全文
posted @ 2018-08-31 23:36 stardsd 阅读(312) 评论(0) 推荐(0) 编辑
摘要:在Apriori算法原理总结中,我们对Apriori算法的原理做了总结。作为一个挖掘频繁项集的算法,Apriori算法需要多次扫描数据,I/O是很大的瓶颈。为了解决这个问题,FP Tree算法(也称FP Growth算法)采用了一些技巧,无论多少数据,只需要扫描两次数据集,因此提高了算法运行的效率。 阅读全文
posted @ 2017-09-06 21:16 stardsd 阅读(755) 评论(0) 推荐(0) 编辑
摘要:在关联规则挖掘领域最经典的算法法是Apriori,其致命的缺点是需要多次扫描事务数据库。于是人们提出了各种裁剪(prune)数据集的方法以减少I/O开支,韩嘉炜老师的FP-Tree算法就是其中非常高效的一种。 名词约定 举个例子,设事务数据库为: A E F G A F G A B E F G E 阅读全文
posted @ 2017-09-06 21:05 stardsd 阅读(4960) 评论(0) 推荐(0) 编辑
摘要:作者: 阮一峰 日期: 2009年5月30日 作者: 阮一峰 日期: 2009年5月30日 1. 前几天,我才知道有一种简化的数据交换格式,叫做yaml。 我翻了一遍它的文档,看懂的地方不多,但是有一句话令我茅塞顿开。 它说,从结构上看,所有的数据(data)最终都可以分解成三种类型: 第一种类型是 阅读全文
posted @ 2017-06-04 20:15 stardsd 阅读(361) 评论(0) 推荐(0) 编辑
摘要:March 26, 2013 作者:Hawstein 出处:http://hawstein.com/posts/dp-novice-to-advanced.html 声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转 阅读全文
posted @ 2017-01-03 20:32 stardsd 阅读(736) 评论(0) 推荐(0) 编辑
摘要:优化算法入门系列文章目录(更新中): 1. 模拟退火算法 2. 遗传算法 一. 爬山算法 ( Hill Climbing ) 介绍模拟退火前,先介绍爬山算法。爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。 爬山算法实现很简单,其主 阅读全文
posted @ 2016-10-05 23:49 stardsd 阅读(1721) 评论(0) 推荐(0) 编辑