{"id":19577256,"url":"https://github.com/iamshuaidi/algo-basic","last_synced_at":"2025-04-12T19:52:54.112Z","repository":{"id":46657245,"uuid":"246345281","full_name":"iamshuaidi/algo-basic","owner":"iamshuaidi","description":"专注于分享算法，计算机基础（包括计算机网络，操作系统，MySQL等），无论是应付面试，还是提升自己地内功，这里都能帮到你","archived":false,"fork":false,"pushed_at":"2020-03-16T07:11:32.000Z","size":449,"stargazers_count":1129,"open_issues_count":3,"forks_count":207,"subscribers_count":32,"default_branch":"master","last_synced_at":"2025-04-12T19:52:28.454Z","etag":null,"topics":["algorithms","c","computer","cpp","dynamic","interview","interview-questions","java","python"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iamshuaidi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-03-10T15:58:46.000Z","updated_at":"2025-04-12T05:34:46.000Z","dependencies_parsed_at":"2022-08-12T13:00:43.364Z","dependency_job_id":null,"html_url":"https://github.com/iamshuaidi/algo-basic","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamshuaidi%2Falgo-basic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamshuaidi%2Falgo-basic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamshuaidi%2Falgo-basic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamshuaidi%2Falgo-basic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iamshuaidi","download_url":"https://codeload.github.com/iamshuaidi/algo-basic/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248625507,"owners_count":21135513,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithms","c","computer","cpp","dynamic","interview","interview-questions","java","python"],"created_at":"2024-11-11T07:05:41.355Z","updated_at":"2025-04-12T19:52:54.088Z","avatar_url":"https://github.com/iamshuaidi.png","language":null,"readme":"# algo-basic\n为了让大家更好着阅读算法，计算机基础（包括计算机网络，操作系统，MySQL等）等高质量技术文章，我把这些文章整理成了一本带有高清目录的 PDF，不过为了后续方便更正错误以及增加新内容，所以有了这个 Github。\n\n所以呢，这个Github将会分享数据结构，算法，计算机基础，我的学习经验等文章，无论你是要应付面试，特别是校招，还是想提升自己的**内功**，我想，我的这些文章都会对你有所帮助，这些文章基本都是获得各大博客平台一直好评之后，我才更新到这里了。\n\n另外，如果看了文章后有帮助，帅地想请你帮我个忙，送我一个 Star，满足下我地虚荣心，如果 Star 多的话，说不定我还有机会截图发个朋友圈，装装B，嘻嘻。\n\n最后，如果你想看 PDF 或者 epub 版本的电子书，可以在我的微信公众号 **帅地玩编程** 回复 **程序员内功修炼** ，即可获取所有文章整理而成，带有高清目录的 PDF/epub 版电子书哦，可以直接扫一扫关注哦。\n\n![我的公众号ID：di201805，微信搜索搜索这个ID即可找到](https://github.com/iamshuaidi/CS-Book/blob/master/%E5%85%AC%E4%BC%97%E5%8F%B7.jpg)\n\n## 目录\n\n* [学算法](#学算法)\n  * [学习算法经验分享](#学习算法经验分享)\n  * [学递归](#学递归)\n  * [学动态规划](#学动态规划)\n  * [学二分查找](#学二分查找)\n  * [再现校招算法面试现场](#再现校招算法面试现场)\n  * [学字符串匹配算法](#学字符串匹配算法)\n  * [必学算法思维与技巧](#必学算法思维与技巧)\n  * [必学排序算法](#必学排序算法)\n  * [搞定二叉树](#搞定二叉树)\n  * [搞定链表](#搞定链表)\n* [学数据结构](#学数据结构)\n* [学计算机网络](#学计算机网络)\n* [写给在校生的经验总结](#写给在校生的经验总结)\n* [个人经历与感想](#个人经历与感想)\n* [学操作系统](#学操作系统)\n* [MySQL](#MySQL)\n* [Java](#Java)\n* [Git](#Git)\n* [看过的优质书籍推荐](#看过的优质书籍推荐)\n* [后续](#后续)\n* [赞赏](#赞赏)\n\n\n\n## 学算法\n\n### 学习算法经验分享\n\n* [程序员必须掌握的算法有哪些?](学算法/学习算法经验分享/程序员必须掌握的算法有哪些?.md)\n* [作为一个小白，算法该如何学习？](学算法/学习算法经验分享/作为一个小白，算法该如何学习？.md)\n* [leetcode刷500道题，笔试/面试稳过吗？](学算法/学习算法经验分享/leetcode刷500道题，笔试/面试稳过吗？.md)\n\n### 学递归\n\n* [为什么你学不会递归？告别递归，谈谈我的一些经验](学算法/学递归/为什么你学不会递归？告别递归，谈谈我的一些经验.md)\n* [训练1：在两个长度相等的排序数组中找到上中位数](学算法/学递归/训练1：在两个长度相等的排序数组中找到上中位数.md)\n* [训练2：求两个有序数组的第K小数](学算法/学递归/训练2：求两个有序数组的第K小数.md)\n* [训练3：求两个有序数组的中位数(论思维转换的重要性)](学算法/学递归/训练3：求两个有序数组的中位数(论思维转换的重要性).md)\n\n### 学动态规划\n\n* [动态规划很难？DP连刷40道题，我总结出了这些套路！](学算法/学动态规划/动态规划很难？DP连刷40道题，我总结出了这些套路.md)\n* [动态规划的优化](学算法/学动态规划/动态规划的优化.md)\n* [训练1：详解三道一维的动态规划算法题](学算法/学动态规划/训练1：详解三道一维的动态规划算法题.md)\n* [训练2：详解leetcode221题：最大正方形](学算法/学动态规划/训练2：详解leetcode221题：最大正方形.md)\n\n### 学二分查找\n\n* [二分查找你确定真的会？生活中还能用来设计骗局？](学算法/学二分查找/二分查找你确定真的会？生活中还能用来设计骗局？.md)\n* [两道看似简单的算法题](学算法/学二分查找/两道看似简单的算法题.md)\n* [二分法题型小结](学算法/学二分查找/二分法题型小结.md)\n\n### 再现校招算法面试现场\n\n* [记一道字节跳动的算法面试题：变形的链表反转](学算法/再现校招算法面试现场/记一道字节跳动的算法面试题：变形的链表反转.md)\n* [记一次手撕算法面试：字节跳动的面试官把我四连击了](学算法/再现校招算法面试现场/记一次手撕算法面试：字节跳动的面试官把我四连击了.md)\n* [一道阿里笔试题：我是如何用一行代码解决约瑟夫环问题的](学算法/再现校招算法面试现场/一道阿里笔试题：我是如何用一行代码解决约瑟夫环问题的.md)\n* [记一次阿里面试：面试挂在了LRU缓存算法设计上](学算法/再现校招算法面试现场/记一次阿里面试：面试挂在了LRU缓存算法设计上.md)\n* [前缀和的应用，从一道网易笔试题说起](学算法/再现校招算法面试现场/前缀和的应用，从一道网易笔试题说起.md)\n* [面试被虐：记一次shopee算法面试题：最小栈的最优解](学算法/再现校招算法面试现场/面试被虐：记一次shopee算法面试题：最小栈的最优解.md)\n* [面试被虐：说说游戏中的敏感词过滤是如何实现的？](学算法/再现校招算法面试现场/面试被虐：说说游戏中的敏感词过滤是如何实现的？.md)\n* [只用2GB内存从20亿，40亿，80亿个整数中找到出现次数最多的数](学算法/再现校招算法面试现场/只用2GB内存从20亿，40亿，80亿个整数中找到出现次数最多的数.md)\n\n### 学字符串匹配算法\n\n* [图解字符串匹配KMP算法](学算法/学字符串匹配算法/图解字符串匹配KMP算法.md)\n* [字符串匹配Boyer-Moore算法：文本编辑器中的查找功能是如何实现的？](学算法/学字符串匹配算法/字符串匹配Boyer-Moore算法：文本编辑器中的查找功能是如何实现的？.md)\n\n### 必学算法思维与技巧\n\n* [最求极致：我是如何把easy级别的算法题做成hard级别的](学算法/必学算法思维与技巧/最求极致：我是如何把easy级别的算法题做成hard级别的.md)\n* [分享一道解法巧妙的算法题](学算法/必学算法思维与技巧/分享一道解法巧妙的算法题.md)\n* [阶乘很简单？说实话，这几道阶乘相关面试题你还真不一定懂！](学算法/必学算法思维与技巧/阶乘很简单？说实话，这几道阶乘相关面试题你还真不一定懂.md)\n* [面试官，求求你不要问我这么简单但又刁难的算法题了](学算法/必学算法思维与技巧/面试官，求求你不要问我这么简单但又刁难的算法题了.md)\n* [牛逼！一行代码居然能解决这么多曾经困扰我半天的算法题](学算法/必学算法思维与技巧/牛逼！一行代码居然能解决这么多曾经困扰我半天的算法题.md)\n* [帅地给你总结了这份高频地算法解题技巧，助你更快速着解题！](学算法/必学算法思维与技巧/帅地给你总结了这份高频地算法解题技巧，助你更快速着解题！.md)\n* [算法数据结构中有哪些奇技淫巧？](学算法/必学算法思维与技巧/算法数据结构中有哪些奇技淫巧？.md)\n* [位运算装逼指南](学算法/必学算法思维与技巧/位运算装逼指南.md)\n* [寻找缺失的整数](学算法/必学算法思维与技巧/寻找缺失的整数.md)\n\n### 必学排序算法\n\n* [漫画：求求你不要再问我快速排序了](学算法/必学排序算法/漫画：求求你不要再问我快速排序了.md)\n* [漫画：为什么说O(n)复杂度的基数排序没有快速排序快？](学算法/必学排序算法/漫画：为什么说O(n)复杂度的基数排序没有快速排序快？.md)\n* [漫画：外部排序：如果用2GB内存给20亿个整数排序？（其实这也是一个常考面试题）](学算法/必学排序算法/漫画：外部排序：如果用2GB内存给20亿个整数排序？（其实这也是一个常考面试题）.md)\n* [别翻了，程序员必学十大经典排序算法，看这篇就够了](学算法/必学排序算法/别翻了，程序员必学十大经典排序算法，看这篇就够了.md)\n\n### 搞定二叉树\n\n* [二叉树的先序遍历（非递归版）](学算法/搞定二叉树/二叉树的先序遍历（非递归版）.md)\n* [二叉树的中序遍历（非递归版）](学算法/搞定二叉树/二叉树的中序遍历（非递归版）.md)\n* [二叉树的后序遍历（非递归版）](学算法/搞定二叉树/二叉树的后序遍历（非递归版）.md)\n* [从上往下打印二叉树](学算法/搞定二叉树/从上往下打印二叉树.md)\n* [二叉树的构建](学算法/搞定二叉树/二叉树的构建.md)\n* [二叉树的镜像](学算法/搞定二叉树/二叉树的镜像.md)\n* [二叉树的子结构](学算法/搞定二叉树/二叉树的子结构.md)\n* [二叉搜索树的后序遍历序列](学算法/搞定二叉树/二叉搜索树的后序遍历序列.md)\n* [重建二叉树](学算法/搞定二叉树/重建二叉树.md)\n\n### 搞定链表\n\n* [链表训练1：删除单链表的第K个节点](学算法/搞定链表/链表训练1：删除单链表的第K个节点.md)\n* [链表训练2：删除单链表的中间节点](学算法/搞定链表/链表训练2：删除单链表的中间节点.md)\n* [链表训练3：如何优雅着反转单链表](学算法/搞定链表/链表训练3：如何优雅着反转单链表.md)\n* [链表训练4：环形单链表约瑟夫问题](学算法/搞定链表/链表训练4：环形单链表约瑟夫问题.md)\n* [链表训练5：三种方法带你优雅判断回文链表](学算法/搞定链表/链表训练5：三种方法带你优雅判断回文链表.md)\n* [链表训练6：将单向链表按某值划分成左边小，中间相等，右边大的形式](学算法/搞定链表/链表训练6：将单向链表按某值划分成左边小，中间相等，右边大的形式.md)\n* [链表训练7：复制含有随机指针节点的链表](学算法/搞定链表/链表训练7：复制含有随机指针节点的链表.md)\n* [链表训练8：将单链表的每K个节点之间逆序](学算法/搞定链表/链表训练8：将单链表的每K个节点之间逆序.md)\n* [链表训练9：将搜索二叉树转换成双向链表](学算法/搞定链表/链表训练9：将搜索二叉树转换成双向链表.md)\n\n\n\n## 学数据结构\n\n* [二叉堆是什么鬼？](学数据结构/二叉堆是什么鬼？.md)\n* [堆排序是什么鬼？](学数据结构/堆排序是什么鬼？.md)\n* [漫画：什么是avl树？](学数据结构/漫画：什么是avl树？.md)\n* [腾讯面试题：有了二叉查找树，平衡树为啥还需要红黑树？](学数据结构/腾讯面试题：有了二叉查找树，平衡树为啥还需要红黑树？.md)\n* [高频面试：什么是B树？为啥文件索引要用B树而不用二叉查找树？](学数据结构/高频面试：什么是B树？为啥文件索引要用B树而不用二叉查找树？.md)\n* [以后有面试官问你跳跃表，你就把这篇文章扔给他](学数据结构/以后有面试官问你跳跃表，你就把这篇文章扔给他.md)\n\n## 学计算机网络\n\n* [一文读懂一台计算机是如何把数据发送给另一台计算机的](学计算机网络/一文读懂一台计算机是如何把数据发送给另一台计算机的.md)\n* [漫话：什么是https?这应该是全网把https讲的最好的一篇文章了](学计算机网络/漫话：什么是https?这应该是全网把https讲的最好的一篇文章了.md)\n* [图解：两天完全陌生的主机是如何办到数据的正确交付的？](学计算机网络/图解：两天完全陌生的主机是如何办到数据的正确交付的？.md)\n* [数字签名是什么](学计算机网络/数字签名是什么.md)\n* [什么是拥塞控制？](学计算机网络/什么是拥塞控制？.md)\n* [什么是TCP流量控制](学计算机网络/什么是TCP流量控制.md)\n* [什么是广播路由算法？如何解决广播风暴？](学计算机网络/什么是广播路由算法？如何解决广播风暴？.md)\n* [关于三次握手与四次挥手面试官想考我们什么？](学计算机网络/关于三次握手与四次挥手面试官想考我们什么？.md)\n* [电脑的ip是怎么来的？我又没有配置过](学计算机网络/电脑的ip是怎么来的？我又没有配置过.md)\n* [电路交换与分组交换的区别](学计算机网络/电路交换与分组交换的区别.md)\n\n## 写给在校生的经验总结\n\n* [学了四年编程，这些优质的学习工具，网站与资料，推荐给你们](写给在校生的经验总结/学了四年编程，这些优质的学习工具，网站与资料，推荐给你们.md)\n* [想了很久，这是一份适合普通大众的学习路线](写给在校生的经验总结/想了很久，这是一份适合普通大众的学习路线.md)\n* [核心整理：那些让你起飞的计算机基础知识：学什么，怎么学？](写给在校生的经验总结/核心整理：那些让你起飞的计算机基础知识：学什么，怎么学？.md)\n* [嗯，春招两次腾讯面试都挂二面，分享下我失败+傻傻的面试经历](写给在校生的经验总结/嗯，春招两次腾讯面试都挂二面，分享下我失败+傻傻的面试经历.md)\n* [历经两个月的秋招，结束了，谈谈春秋招中一些重要的知识点吧](写给在校生的经验总结/历经两个月的秋招，结束了，谈谈春秋招中一些重要的知识点吧.md)\n* [有必要说一说即将到来的春招（经历+重要性+如何准备）](写给在校生的经验总结/有必要说一说即将到来的春招（经历+重要性+如何准备）.md)\n* [讲一讲当时春秋招时做过的项目以及推荐几个项目+面试视频](写给在校生的经验总结/讲一讲当时春秋招时做过的项目以及推荐几个项目+面试视频.md)\n\n## 个人经历与感想\n\n* [秋招结束了，普普通通，我的三年大学](个人经历与感想/秋招结束了，普普通通，我的三年大学.md)\n* [写公众号15个月以来，这一路上的学习与收获](个人经历与感想/写公众号15个月以来，这一路上的学习与收获.md)\n* [我的2019](个人经历与感想/我的2019.md)\n* [玩公众号写文章一年多以来，我经历了被喷被拉黑被赞美，我酸了](个人经历与感想/玩公众号写文章一年多以来，我经历了被喷被拉黑被赞美，我酸了.md)\n* [2020第一篇原创：我是如何让自己变的更加优秀的](个人经历与感想/2020第一篇原创：我是如何让自己变的更加优秀的.md)\n* [说一说我最近的日常，学习与思考](个人经历与感想/说一说我最近的日常，学习与思考.md)\n\n## 学操作系统\n\n这部分的文章有点少，后面逐渐补充，敬请期待\n\n* [记一次面试：进程之间究竟有哪些通信方式？如何通信？](学操作系统/记一次面试：进程之间究竟有哪些通信方式？如何通信？.md)\n\n## MySQL\n\n* [腾讯面试：一条SQL语句执行得很慢的原因有哪些？](MySQL/腾讯面试：一条SQL语句执行得很慢的原因有哪些？.md)\n* [面试小知识：MySQL索引相关](MySQL/面试小知识：MySQL索引相关.md)\n* [我去，这两个小技巧，让我的SQL语句不仅躲了坑，还提升了1000倍](MySQL/我去，这两个小技巧，让我的SQL语句不仅躲了坑，还提升了1000倍.md)\n\n## Java\n\n* [线程安全(上)：彻底搞懂volatile关键字](Java/线程安全(上)：彻底搞懂volatile关键字.md)\n* [线程安全(下)：彻底搞懂synchronized(从偏向锁到重量级锁)](Java/线程安全(下)：彻底搞懂synchronized(从偏向锁到重量级锁).md)\n* [一句话撸完重量级锁、自旋锁、轻量级锁、偏向锁、悲观、乐观锁等各种锁](Java/一句话撸完重量级锁、自旋锁、轻量级锁、偏向锁、悲观、乐观锁等各种锁.md)\n* [并发的核心：CAS是什么？Java8是如何优化CAS的？](Java/并发的核心：CAS是什么？Java8是如何优化CAS的？.md)\n* [Java并发包中最重要的几个同步类，你敢不学？](Java/Java并发包中最重要的几个同步类，你敢不学？.md)\n* [求求你规范下你的代码风格](Java/求求你规范下你的代码风格.md)\n\n\n\n## Git\n\n* [最近从0学习Git，总结了这份Git命令宝典](Git/最近从0学习Git，总结了这份Git命令宝典.md)\n\n\n\n## 看过的优质书籍推荐\n\n* [大学四年，看过的优质书籍推荐](看过的优质书籍推荐/大学四年，看过的优质书籍推荐.md)\n* [算法\u0010与计算机基础，有哪些值得阅读的书籍？](看过的优质书籍推荐/算法\u0010与计算机基础，有哪些值得阅读的书籍？.md)\n\n\n\n## 后续\n\n希望这本电子书对你有所帮助，如果大家的反响不错，我后面会继续增加内容，目前这本算是初级版，可能也存在很多不足，例如错别字，某些知识点写错，如果大家遇到什么疑问，都可以通过我的公众号找到我，可以在我的公众号留言，或者直接加我的个人微信。\n\n## 赞赏\n\n电子书的整理也是挺不容易，如果你觉得有帮助，想要打赏作者，那么可以通过这个收款码打赏我，金额不重要，心意最重要，主要是我可以通过这个打赏情况来预计大家对这本电子书的评价，嘻嘻。\n\n\u003e 注：打款时可以备注下你的昵称哦，可以是 CSDN，可以是 微信，可以是 GitHub等\n\n\n\n![在这里插入图片描述](https://img-blog.csdnimg.cn/20200313182110902.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzM3OTA3Nzk3,size_16,color_FFFFFF,t_70)\n\n\n\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamshuaidi%2Falgo-basic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiamshuaidi%2Falgo-basic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamshuaidi%2Falgo-basic/lists"}