算法与数据结构
gongpulin
这个作者很懒,什么都没留下…
展开
-
8大排序详解
1.冒泡法排序算法描述:冒泡排序是一种交换排序,主要思想就是比较相邻元素,然后将较小的元素交换到前面,较大的元素交换到后面。 稳定性描述:由于交换是逐个进行的,且相等的元素不进行交换,所以冒泡法排序是一种稳定排序算法。算法实现:[cpp] view plaincopyvoid bubbleSort(listNode L[], int leng原创 2015-07-20 17:43:37 · 508 阅读 · 0 评论 -
Java实现堆排序(大根堆)
https://www.cnblogs.com/CherishFX/p/4643940.html转载 2018-12-10 21:18:05 · 1010 阅读 · 0 评论 -
B+Tree原理及mysql的索引分析
https://www.cnblogs.com/xiaoxi/p/6894610.html一、索引的本质 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。 我们知道,数据库查询是数据库的最主要功能之一。我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度...转载 2018-11-30 17:53:35 · 308 阅读 · 0 评论 -
一致性哈希算法原理
https://www.cnblogs.com/lpfuture/p/5796398.html一致性Hash算法背景 一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。...转载 2018-11-26 14:29:04 · 308 阅读 · 0 评论 -
BitMap算法
BitMapBitMap从字面的意思,很多人认为是位图,其实准确的来说,翻译成基于位的映射。在所有具有性能优化的数据结构中,大家使用最多的就是hash表,是的,在具有定位查找上具有O(1)的常量时间,多么的简洁优美。但是数据量大了,内存就不够了。当然也可以使用类似外排序来解决问题的,由于要走IO所以时间上又不行。所谓的Bit-map就是用一个bit位来标记某个元素对应的Value,...转载 2018-07-20 19:21:37 · 8916 阅读 · 1 评论 -
leveldb原理与实现
LevelDb日知录之一:LevelDb 101 说起LevelDb也许您不清楚,但是如果作为IT工程师,不知道下面两位大神级别的工程师,那您的领导估计会Hold不住了:Jeff Dean和Sanjay Ghemawat。这两位是Google公司重量级的工程师,为数甚少的Google Fellow之二。 Jeff Dean其人:http://research.google.com/people...转载 2018-07-12 15:37:10 · 193 阅读 · 0 评论 -
LSM Tree 学习笔记
LSM Tree 学习笔记最近发现很多数据库都使用了 LSM Tree 的存储模型,包括 LevelDB,HBase,Google BigTable,Cassandra,InfluxDB 等。之前还没有留意这么设计的原因,最近调研时间序列数据库的时候才发现这样设计的优势所在,所以重新又复习了一遍 LSM Tree 的原理。特点总的来说就是通过将大量的随机写转换为顺序写,从而极大地提升了数据写入的性...转载 2018-07-12 14:40:35 · 3720 阅读 · 0 评论 -
一篇文章搞定面试中的二叉树
2018-02-07 IOExceptioner 算法与数据结构来自:杨守乐(微信号:study_tech)作者:IOExceptioner链接:https://www.jianshu.com/p/0190985635eb在上一篇介绍二叉树( Android面试题算法之二叉树 、红黑树详细分析,看了都说好),没看的读者建议先去了解了解,接下来再给转载 2018-02-07 20:47:08 · 408 阅读 · 0 评论 -
漫画BitMap在用户画像的应用
两个月之前——为满足用户标签的统计需求,小灰利用Mysql设计了如下的表结构,每一个维度的标签都对应着Mysql表的一列:要想统计所有90后的程序员该怎转载 2017-08-29 23:30:55 · 2557 阅读 · 0 评论 -
教你如何迅速秒杀掉:99%的海量数据处理面试题
教你如何迅速秒杀掉:99%的海量数据处理面试题本文经过大量细致的优化后,收录于我的新书《编程之法》第六章中,新书目前已上架京东/当当/亚马逊作者:July出处:结构之法算法之道blog前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,转载 2016-07-19 11:28:34 · 599 阅读 · 0 评论 -
数据结构和算法05 之红-黑树(看完包懂~)
转载:http://blog.csdn.net/eson_15/article/details/51144079(友情提示,红-黑树是基于二叉搜索树的,如果对二叉搜索树不了解,可以先看看:二叉搜索树 ) 从第4节的分析中可以看出,二叉搜索树是个很好的数据结构,可以快速地找到一个给定关键字的数据项,并且可以快速地插入和删除数据项。但是二叉搜索树有个很转载 2016-05-19 09:25:33 · 2243 阅读 · 1 评论 -
机器学习10大经典算法
1、C4.5机器学习中,决策树是一个预测模型;他代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输出。从数据产生决策树的机器学习技术叫做决策树学习, 通俗说就是决策树。决策树学习也是转载 2016-01-14 20:33:28 · 949 阅读 · 0 评论 -
中文分词算法基础
中文分词算法现在一般分为三类:基于词典的字符串匹配,基于理解,基于统计的分词。 基于词典的字符串匹配分词:机械分词算法。将待分的字符串与一个充分大的机器词典中的词条进行匹配。分为正向匹配和逆向匹配;最大长度匹配和最小长度匹配;单纯分词和分词与标注过程相结合的一体化方法。所以常用的有:正向最大匹配,逆向最大匹配,最少切分法。。。实际应用中,将机械分词作为初分手段,利用语言信息提高切分准确率。优先识别原创 2016-01-02 11:32:41 · 1391 阅读 · 0 评论 -
HashMap原理
Map 是非常常用的一种数据接口。在 Java 中,提供了成熟的 Map 实现。图 1最主要的实现类有 Hashtable、HashMap、LinkedHashMap和 TreeMap。在 HashTable 的子类中,还有 Properties的实现。Properties 是专门读取配置文件的类,我们会在稍后介绍。这里首先值得关注的是 HashMap 和 HashTabl原创 2015-11-23 17:19:03 · 527 阅读 · 0 评论 -
LruCache在美团DSP系统中的应用演进
https://tech.meituan.com/lrucache_practice_dsp.html背景DSP系统是互联网广告需求方平台,用于承接媒体流量,投放广告。业务特点是并发度高,平均响应低(百毫秒)。为了能够有效提高DSP系统的性能,美团平台引入了一种带有清退机制的缓存结构LruCache(Least Recently Used Cache),在目前的DSP系统中,使用Lru...转载 2018-12-28 11:22:59 · 343 阅读 · 0 评论