## 算法
[按首字母给图书排序:冒泡排序、插入排序、快速排序算法原理](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
- 开始
- 公益
- 更好的使用看云
- 推荐书单
- 优秀资源整理
- 技术文章写作规范
- SublimeText - 编码利器
- PSR-0/PSR-4命名标准
- php的多进程实验分析
- 高级PHP
- 进程
- 信号
- 事件
- IO模型
- 同步、异步
- socket
- Swoole
- PHP扩展
- Composer
- easyswoole
- php多线程
- 守护程序
- 文件锁
- s-socket
- aphp
- 队列&并发
- 队列
- 讲个故事
- 如何最大效率的问题
- 访问式的web服务(一)
- 访问式的web服务(二)
- 请求
- 浏览器访问阻塞问题
- Swoole
- 你必须理解的计算机核心概念 - 码农翻身
- CPU阿甘 - 码农翻身
- 异步通知,那我要怎么通知你啊?
- 实时操作系统
- 深入实时 Linux
- Redis 实现队列
- redis与队列
- 定时-时钟-阻塞
- 计算机的生命
- 多进程/多线程
- 进程通信
- 拜占庭将军问题深入探讨
- JAVA CAS原理深度分析
- 队列的思考
- 走进并发的世界
- 锁
- 事务笔记
- 并发问题带来的后果
- 为什么说乐观锁是安全的
- 内存锁与内存事务 - 刘小兵2014
- 加锁还是不加锁,这是一个问题 - 码农翻身
- 编程世界的那把锁 - 码农翻身
- 如何保证万无一失
- 传统事务与柔性事务
- 大白话搞懂什么是同步/异步/阻塞/非阻塞
- redis实现锁
- 浅谈mysql事务
- PHP异常
- php错误
- 文件加载
- 路由与伪静态
- URL模式之分析
- 字符串处理
- 正则表达式
- 数组合并与+
- 文件上传
- 常用验证与过滤
- 记录
- 趣图
- foreach需要注意的问题
- Discuz!笔记
- 程序设计思维
- 抽象与具体
- 配置
- 关于如何学习的思考
- 编程思维
- 谈编程
- 如何安全的修改对象
- 临时
- 临时笔记
- 透过问题看本质
- 程序后门
- 边界检查
- session
- 安全
- 王垠
- 第三方数据接口
- 验证码问题
- 还是少不了虚拟机
- 程序员如何谈恋爱
- 程序员为什么要一直改BUG,为什么不能一次性把代码写好?
- 碎碎念
- 算法
- 实用代码
- 相对私密与绝对私密
- 学习目标
- 随记
- 编程小知识
- foo
- 落盘
- URL编码的思考
- 字符编码
- Elasticsearch
- TCP-IP协议
- 碎碎念2
- Grafana
- EFK、ELK
- RPC
- 依赖注入
- 开发笔记
- 经纬度格式转换
- php时区问题
- 解决本地开发时调用远程AIP跨域问题
- 后期静态绑定
- 谈tp的跳转提示页面
- 无限分类问题
- 生成微缩图
- MVC名词
- MVC架构
- 也许模块不是唯一的答案
- 哈希算法
- 开发后台
- 软件设计架构
- mysql表字段设计
- 上传表如何设计
- 二开心得
- awesomes-tables
- 安全的代码部署
- 微信开发笔记
- 账户授权相关
- 小程序获取是否关注其公众号
- 支付相关
- 提交订单
- 微信支付笔记
- 支付接口笔记
- 支付中心开发
- 下单与支付
- 支付流程设计
- 订单与支付设计
- 敏感操作验证
- 排序设计
- 代码的运行环境
- 搜索关键字的显示处理
- 接口异步更新ip信息
- 图片处理
- 项目搭建
- 阅读文档的新方式
- mysql_insert_id并发问题思考
- 行锁注意事项
- 细节注意
- 如何处理用户的输入
- 不可见的字符
- 抽奖
- 时间处理
- 应用开发实战
- python 学习记录
- Scrapy 教程
- Playwright 教程
- stealth.min.js
- Selenium 教程
- requests 教程
- pyautogui 教程
- Flask 教程
- PyInstaller 教程
- 蜘蛛
- python 文档相似度验证
- thinkphp5.0数据库与模型的研究
- workerman进程管理
- workerman网络分析
- java学习记录
- docker
- 笔记
- kubernetes
- Kubernetes
- PaddlePaddle
- composer
- oneinstack
- 人工智能 AI
- 京东
- pc_detailpage_wareBusiness
- doc
- 电商网站设计
- iwebshop
- 商品规格分析
- 商品属性分析
- tpshop
- 商品规格分析
- 商品属性分析
- 电商表设计
- 设计记录
- 优惠券
- 生成唯一订单号
- 购物车技术
- 分类与类型
- 微信登录与绑定
- 京东到家库存系统架构设计
- crmeb
- 命名规范
- Nginx https配置
- 关于人工智能
- 从人的思考方式到二叉树
- 架构
- 今日有感
- 文章保存
- 安全背后: 浏览器是如何校验证书的
- 避不开的分布式事务
- devops自动化运维、部署、测试的最后一公里 —— ApiFox 云时代的接口管理工具
- 找到自己今生要做的事
- 自动化生活
- 开源与浆果
- Apifox: API 接口自动化测试指南