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

数据结构总结和日常工作使用的算法
摘要:复杂度分析 是整个算法学习的精髓,只要掌握了它,数据结构和算法的内容基本上就掌握了一半。 为什么需要复杂度分析 因为事后统计法,测试的结果非常依赖测试环境,受数据规模的影响很大 所以我们需要一个不用具体的测试数据来测试,就可以粗略地估算计算法的执行效率的方法。 时间、空间复杂度分析方法 大 O 复杂 阅读全文
posted @ 2021-03-15 07:58 Khadron 阅读(132) 评论(0) 推荐(0)
摘要:在缓存设计中有两点是必须要考虑的: 缓存的数据和目标数据的一致性问题 缓存的过期策略 其中,缓存的过期策略是重点,因为缓存的存储空间往往是有限的,当缓存中的存储块被用完,就需要把过期的缓存移除掉,所以我们需要设计一种良好的缓存淘汰算法来实现。业界中常用的淘汰算法有 LRU和LFU的区别是,LFU算法 阅读全文
posted @ 2016-08-01 23:51 Khadron 阅读(271) 评论(0) 推荐(0)
摘要:最近由于工作需要,接触了编辑距离(Levenshtein Distance)算法。赶脚很有意思。最初百度了一些文章,但讲的都不是很好,读起来感觉似懂非懂。最后还是用google找到了一些资料才慢慢理解。当我完全理解的时就想把自己探索时遇到的“坑”总结起来,为后人“乘凉”。于是就有了这篇博文。 下面先 阅读全文
posted @ 2016-06-30 10:39 Khadron 阅读(1212) 评论(0) 推荐(0)
摘要:概念 二分查找又称折半查找,它是一种效率较高的查找方法。它的时间复杂度为O(logn) 二分查找要求:有序的线性表 基本思想 二分查找的基本思想是划分当前查找区间,区间的范围一步一步的缩小,如果找到直接返回,反之直到区间只有一个元素时停止 实现 设R为一个值递增的有序线性表 实现步骤: 首先确定该区 阅读全文
posted @ 2016-04-01 12:06 Khadron 阅读(210) 评论(0) 推荐(0)
摘要:简介 快速排序和其他几种排序的方法相比它的效率较高,因此经常被使用。它由C.R.A.Hoare于1962年提出的一种划分交换排序。采用了一种分治策略,通常称其为分治法(Divide-and-ConquerMethod)。其时间复杂度为O(N*logN) 分治法的基本思想 将原问题分解为若干个规模更小 阅读全文
posted @ 2016-03-31 18:24 Khadron 阅读(299) 评论(0) 推荐(0)