算法
最后更新于:2022-04-02 04:30:50
## 算法
[按首字母给图书排序:冒泡排序、插入排序、快速排序算法原理](https://www.365yg.com/a6542078776354800131)
* * * * *
### 扩展
[通俗易懂讲解 链表 - 知乎](https://zhuanlan.zhihu.com/p/29627391)
[【IT好望角】程序员实用的工具网站整理](http://mp.weixin.qq.com/s/wKpNJY6PD0ArxnKtl71xwQ)
[【数据结构与算法】二分查找](http://mp.weixin.qq.com/s/1qUPyysDYDMkjjYVCMCfow)
> 二分查找有着查找速度快,平均性能好等优点,但必须要求待查表为有序表,且插入删除困难
[分类:算法与数学 - 阮一峰的网络日志](http://www.ruanyifeng.com/blog/algorithm/)
[算法分析神器—时间复杂度](https://mp.weixin.qq.com/s/_7l0JEFFuKZVjeIwVYwtdw)
[帝王为啥总要杀掉有功之臣?李永乐老师用博弈论带你看清社会现实](https://www.365yg.com/a6546772627061473805)
[【数据结构与算法】栈](https://mp.weixin.qq.com/s/CsJpM_NG3kNhlq9m-Jp_FA)
[【数据结构与算法】哈希表 (hash table)](https://mp.weixin.qq.com/s/vVGcl_-9nPZ_4kF2J683tw)
[17 Equations That Changed The World - Business Insider](http://www.businessinsider.com/17-equations-that-changed-the-world-2014-3/?IR=T)
[OpenGenus/cosmos: Algorithms that run our universe | Your personal library of every algorithm and data structure code that you will ever encounter | Ask us anything at our forum](https://github.com/OpenGenus/cosmos)
[自动驾驶汽车的道德困境:科技背后的算法如何设计](https://www.365yg.com/a6559740189495788045#mid=12911056623)
[通俗理解信息熵](https://mp.weixin.qq.com/s/6I2-5zWbpAUSgoHRUEkj3Q)
[从世界杯竞猜骗局谈二分法](https://mp.weixin.qq.com/s/TSnfqm6hYENLhk9PKHL9jw)
[【IT好望角】数学分析告诉我们什么?](https://mp.weixin.qq.com/s/c0a0CGwwwTEljy8UpNbBRA)
[漫画:有趣的扔鸡蛋问题](https://mp.weixin.qq.com/s/nMC55qvgsQNQfncAEOM20Q)
[信道编码的前世今生: 一段波澜壮阔的通信史!](https://www.toutiao.com/a6533554021599281671/?tt_from=weixin&utm_campaign=client_share×tamp=1525864710&app=news_article_lite&utm_source=weixin&iid=31395168747&utm_medium=toutiao_android&wxshare_count=1)
[回归:从精灵宝可梦说起](https://mp.weixin.qq.com/s/qlmRbvlcUNo8BuqhR0D7Pw)
[看完这篇文章,你肯定理解什么是浮点数了!](https://mp.weixin.qq.com/s/34Fg9GSqRDoBbGFPzOt_ow)
[我猜,每个程序员对着电梯都想过调度算法吧!](https://mp.weixin.qq.com/s/_hyxmoDvnmY5zNh7pp3Png)
[漫画:什么是基数排序?](https://mp.weixin.qq.com/s/FbBZotOtue3pB5BuWLa4ng)
[分布式唯一ID生成方案总结](https://mp.weixin.qq.com/s/7NdpI-TP5sWlS1P9qC_jMg)
[再谈分布式ID生成方案](https://mp.weixin.qq.com/s/LoX06fUtxpegFrsdNoBYWw)
[一篇文章讲透MySQL为什么要用B+树实现索引](https://mp.weixin.qq.com/s/xksEx9TY3aAFByiti8qs8Q)
[一文学会递归解题](https://mp.weixin.qq.com/s/kQG8mIQXFn4-sl3zfV-vRw)
[ShowMeBug 核心技术内幕](https://yafeilee.com/blogs/100)(多人 协作冲突算法 OT 算法)
[产品技术 Operational Transformation](https://mp.weixin.qq.com/s/kQkYrLO5lL5a3Rr1jY_3Iw)
[清华毕业生开发新特效编程语言:99 行代码背后 20 多年的故事...](https://mp.weixin.qq.com/s/3ntrkMrXiYIyRgQX1qZK2g)
[【数据结构与算法】主宰这个世界的10大算法](https://mp.weixin.qq.com/s/E8CyYTnlMTuBc9fZWxvUaQ)
~~~
简而言之,任何定义明确的计算步骤都可称为算法,接受一个或一组值为输入,输出一个或一组值。(来源:homas H. Cormen, Chales E. Leiserson 《算法导论第3版》)
可以这样理解,算法是用来解决特定问题的一系列步骤(不仅计算机需要算法,我们在日常生活中也在使用算法)。算法必须具备如下3个重要特性:
有穷性,执行有限步骤后,算法必须中止。
确切性,算法的每个步骤都必须确切定义。
可行性,特定算法须可以在特定的时间内解决特定问题。
~~~
[讨厌的人类居然让我们掷骰子,这实在太难了!](https://mp.weixin.qq.com/s/VpYM4mP2CGLIgiadL-1SDw)(真正的随机必须没有主管和客观)
[一文读懂递归算法](https://mp.weixin.qq.com/s/es3K8S_h2_j1TM8FZs8t5w)
[唯一ID生成算法剖析 - 腾讯技术工程](https://mp.weixin.qq.com/s/E3PGP6FDBFUcghYfpe6vsg)
[一线大厂的分布式唯一ID生成方案是什么样的?](https://mp.weixin.qq.com/s/wXndZhU3VYnwDPXDEDF-fQ)
[分布式ID常见解决方案](https://mp.weixin.qq.com/s/qSeJbOdD_gapW2SRr-7Eow)
[是什么能让 APP 快速精准定位到我们的位置?](https://mp.weixin.qq.com/s/KqCxb24FoIge9AropiSzXg)
[hash 算法原理及应用漫谈](https://mp.weixin.qq.com/s/NyKqBEDI6g8AQ0PGeU1C5g)
[这可能是迄今为止最好的一篇正则入门教程-下](https://mp.weixin.qq.com/s/6Hw6px-ZUvHYeYVUOx6CpQ)
[分布式数据缓存中的一致性哈希算法](https://mp.weixin.qq.com/s/JpzpGTdUpstQfq4enZyQ5Q)
[分布式数据缓存中的一致性哈希算法](https://mp.weixin.qq.com/s/UlAjEEsRzzVHJ0TbGvBFlg)
> 普通的哈希表算法一般都是计算出哈希值后,通过取余操作将 key 值映射到不同的服务器上,但是当服务器数量发生变化时,取余操作的除数发生变化,所有 key 所映射的服务器几乎都会改变,这对分布式缓存系统来说是不可以接收的。
> 一致性哈希算法能尽可能减少了服务器数量变化所导致的缓存迁移。
[CAP 定理的含义](http://www.ruanyifeng.com/blog/2018/07/cap.html)
[漫画:图的 “最短路径” 问题](https://mp.weixin.qq.com/s/gjjrsj95X4w7QdWBlAKnaA)
[编码kata,玩转FizzBuzz](https://www.jianshu.com/p/8df42e45105e)
[对字符串匹配算法的一点理解](https://mp.weixin.qq.com/s/aC7XEsz3eGSWj3oWHpQE7w)
[PageHelper分页插件的原理是什么](https://mp.weixin.qq.com/s/yqyzc-eh6HiL141RN1zW3A)
[JS 常用正则表达式备忘录](https://mp.weixin.qq.com/s/c2V911oUV0KbdshVai523A)
[数学和编程](http://www.yinwang.org/blog-cn/2015/07/04/math)
[程序语言不是工具](http://www.yinwang.org/blog-cn/2013/04/21/programming-languages-are-not-tools)
> 认同,更不用说解释型语言了,代码是在另一个程序中运行的。
[实现一个JSON解析器,有那么难吗?](https://mp.weixin.qq.com/s/4YYVPRlFsh7rEe9lqQ_lSw)
[银行家算法学习笔记](https://www.cnblogs.com/chuxiuhong/p/6103928.html)
[PNG 图片压缩原理解析](https://mp.weixin.qq.com/s/stvemQVmIYDu8XyyHZ-zBA)
[漫画:如何实现大整数相乘?(上)](https://mp.weixin.qq.com/s/cfChrGDIdj5qMk-vVv-6hQ)
[【漫画】为什么MySQL数据库要用B+树存储索引?](https://mp.weixin.qq.com/s/d9yNsUVFg9UZN62xuOdxow)
[什么?你居然还不知道字符串匹配算法!](https://mp.weixin.qq.com/s/w8YH22XGlMdG6YjCwrV7zg)
[36 岁捧走图灵碗!80 岁算法大师高德纳要在 105 岁完结《计算机程序设计艺术》](https://mp.weixin.qq.com/s/SybMOr_SVxL63Ls_8GqhbQ)
即使精通底层原理,能编写底层代码,也只是一些更底层的实现而已,算真正的技术吗,那真正的技术是算法吗? 其实不用过于纠结,只要有创造力,就是技术。
哪怕你能在脑海中模拟出程序的执行过程和细节
[大白话讲解CAP定理](https://mp.weixin.qq.com/s/0vc5rAQRlr00fturIBQZ4g)
[一文读懂CAP定理](https://mp.weixin.qq.com/s/S9isvugBXv6E9m8hBsFNqQ)
[【协议森林】通信协议之序列化](https://mp.weixin.qq.com/s/_bWOYpZNjA4p7ZWM1J_4mw)
[JavaScript 实现简单二叉查找树](https://mp.weixin.qq.com/s/MqCClFN97uaOZNNfRYDhwQ)
[关于平方根倒数速算法(雷神之锤3,牛B)](https://blog.csdn.net/zyex1108/article/details/53540824)
[CAP 理论 —最通俗易懂的解释](https://mp.weixin.qq.com/s/rmOlQwAiXUbmZ130Ekh1Mg)
[浅谈 CAP 和 Paxos 共识算法](https://mp.weixin.qq.com/s/Fj4zERz9PEuNumd_SI0bEA)
[白话TCP拥塞控制:运粮的河道堵塞了怎么办?](https://mp.weixin.qq.com/s/j0WeTRgJMohIYr-SraMyBw)
[洗稿,技术上怎么判断文章相似性?](https://mp.weixin.qq.com/s/GFpVvMEn4gvcLEMyZOkEFA)
[什么是一致性哈希算法](https://mp.weixin.qq.com/s/bCH-aU8cKS3uT6PwRYNJtA)
[通俗易懂讲解感知机(一)--模型与学习策略](https://mp.weixin.qq.com/s/6yzutAophbSCdX3Puv3BVg)
[一段生成无限级别分类的代码思考](https://mp.weixin.qq.com/s/ptev7R1u3IrWn7o5Q6gg3g)
[用函数式的方式思考——递归](https://mp.weixin.qq.com/s/6VSxQ0kOnJt9p3ujvxf4mA)
[【数据结构与算法】 通俗易懂讲解 冒泡排序](https://mp.weixin.qq.com/s/ts5TikMWR9a_hEpnwilZOg)
协同编辑器冲突算法
[如何建立一个分布式计数器?](https://www.jdon.com/artichect/how-to-build-a-distributed-counter.html)
[事件溯源的复制:CloudState是如何支持分布式一致性CRDT的?]([https://www.jdon.com/53091](https://www.jdon.com/53091))
[互联网级别大变革:本地优先软件!在本地拥有自己的数据,使用CRDT数据结构实现分散式数据合并!](https://www.jdon.com/52197](https://www.jdon.com/52197)
[实现分布式富文本编辑器的经验教训](https://www.jdon.com/50361)
[Eventuate:基于操作CRDT的服务框架](https://www.jdon.com/48444)
[分布式CRDT模型 -解道Jdon](https://www.jdon.com/artichect/crdt.html)
[揭开在线协作的神秘面纱 - OT算法 - 知乎](https://zhuanlan.zhihu.com/p/74562370)
[ShowMeBug 核心技术内幕 - 知乎](https://zhuanlan.zhihu.com/p/74562370)
[我所知道的排序算法之希尔排序](https://mp.weixin.qq.com/s/FsyzmE5cWIA9ff7nh5js_g)
[三个视频教你如何找到另一半](https://mp.weixin.qq.com/s/TxxLE9AeIJxMEm8VdXN4nA)
[腾讯分布式数据库TDSQL金融级能力的架构原理解读](https://mp.weixin.qq.com/s/m_JMXU6iMS4SckzWZYtIUA)
[深入理解 MySQL 索引底层原理](https://mp.weixin.qq.com/s/qHJiTjpvDikFcdl9SRL97Q)
[数据库的最简单实现 - 阮一峰的网络日志](http://www.ruanyifeng.com/blog/2014/07/database\_implementation.html)
这就是数据库
要保存数据,首先我们会想到将数据存放在一个文件中,随着数据量增加文件大小会不断增加,取数据时直接读取整个文件,再找到目标数据,显然这样性能将会很差,试想如果我们能知道目标数据在文件中的具体位置,取数据时只需要读取文件的一部分就能刚好取出数据该有多好,并且考虑到数据还可能会修改删除,因此维护这个文件将会面临很多问题,你会怎么去设计这个文件和数据存取机制呢,这就是数据库。
你可能会想,以id为文件名,不同数据分不同的文件就行了,取数据时直接读某个文件不就行了,这是把文件系统当成数据库了,其实系统底层,文件系统本身就是一个数据库,不然根据路径读取文件的系统调用又是怎么找到磁盘上的文件呢,所以这是利用了系统的文件系统数据库。这样只能实现最简单的场景,排序,范围搜索都不容易实现,并且随着数据增多,影响性能,大量的小文件管理起来很麻烦。
[十种图像模糊算法的总结与实现](https://mp.weixin.qq.com/s/KYxUoaz4dlheFLz3ZinB2w)
[图文详解 DFS 算法 和 BFS 算法](https://mp.weixin.qq.com/s/nt1Xli6oWI0fJjxFHldNIA)
[面试官给我讲了五分钟一致性哈希算法,我傲娇了吗?。。。](https://mp.weixin.qq.com/s/sXTFXbtdOnWUB3Ye3nqaAw)
[手写一个解析器](https://mp.weixin.qq.com/s/VTULhAjEUNfAph-xkkUTsg)
[一文读懂Base64编码](https://mp.weixin.qq.com/s/FDQjarxHYvtI9EXjeACmVQ)
[火绒小课堂:勒索病毒为什么很难解密?(视频)](https://mp.weixin.qq.com/s/tNjfcGpX9wRaGk71TBFCTA)
[同态加密技术及其在机器学习中的应用详解](https://mp.weixin.qq.com/s/kmxRXvURSsRnIKRNVQkmmg)
[席南华院士:数学的意义 | 返朴](https://mp.weixin.qq.com/s/V-p6L2tUii7FpZu9Tx9tWA)
[为什么微信推荐这么快?](https://mp.weixin.qq.com/s/rXXm6c8LrTqqP4iWf9mtxA)
[一口气说出 9种 分布式ID生成方式,面试官有点懵了](https://mp.weixin.qq.com/s/eakphQDWKrsUnIwTj8zMQA)
[七夕之夜,如何保证私密信息不泄露?](https://mp.weixin.qq.com/s/ukrdOJw15EeU3nZ_wjlMSw)
[数据结构中的 “图” ,小灰为大家做一个总结!](https://mp.weixin.qq.com/s/zBN5cBY0b59foq9UMEYchg)
[漫画:图的 “最短路径” 问题](https://mp.weixin.qq.com/s/gjjrsj95X4w7QdWBlAKnaA)
[高效大数据开发之 bitmap 思想的应用](https://mp.weixin.qq.com/s/c5HDenoVde11IMmezj1v1Q)
> 通过将信号量放在共享内存中并用`TSL`或`XCHG`指令来保护它们,可以避免竞争。但是如果是在分布式系统中,可能同时具有多个 CPU 的情况,并且每个 CPU 都有自己的私有内存呢,它们通过网络相连,那么这些原语将会失效。因为信号量太低级了,而管程在少数几种编程语言之外无法使用,所以还需要其他方法。
[图解什么是一致性哈希算法](https://mp.weixin.qq.com/s/2xFH2zWK-3buBU171_lGng)
> 如果数据相对独立,**就避免了线程间的通信和同步,实现了无锁化处理,所以还是很有用的。**
[你觉得自己懂加减乘除吗?| 袁岚峰](https://mp.weixin.qq.com/s/Rm3kwc4F3XxLXjA4LSlpcw)
[Go netpoller 网络模型之源码全面解析](https://mp.weixin.qq.com/s/HNPeffn08QovQwtUH1qkbQ)
[无中生有:论推荐算法中的Embedding思想](https://mp.weixin.qq.com/s/OqwGyxU90G_JIj2gBogS9A)
[用万字长文聊一聊 Embedding 技术](https://mp.weixin.qq.com/s/BwqVwN-9R8ROjgfnTUcMQg)
[一文看懂 TF-IDF (概念图解+4大变种+发展历史)](https://easyai.tech/ai-definition/tf-idf/)
[据说程序员等电梯的时候都想过调度算法,网友:还真是](https://mp.weixin.qq.com/s/LYJl87NmfN-Y42MnChGOoA)
* * * * *
last update:2018-6-14 11:14:06
';