# over-algorithm **Repository Path**: ctliqius/over-algorithm ## Basic Information - **Project Name**: over-algorithm - **Description**: 数据结构与算法:[进度40%]以C、C++严谨描述数据结构与算法,同时以Go、JavaScript等简洁版应对实际业务需要 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-03-22 - **Last Updated**: 2021-08-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # README ## 笔记说明 本算法笔记采用`C&C++`语言、`Go`语言、`JavaScript`语言同时描述。为了符合考研、工作双重需要,在基础原理部分使用严谨的学院派风格的`C/C++` 语言描述,再附带上工作中常用的`Go`语言、`JavaScript`语言来进行简化。 源码中并未采取面向接口、继承等思想来实现工具方法的复用,笔者认为不应该将编程语言的学习成本带入数据结构,笔者的意愿是:学习者拿到每个数据结构,都可以做到信手拈来,直接使用,而不是还要查询其继承、实现结构。 源码文件位于:。 为了便于学习,本笔记附录了 C/C++的基础语法,但是主要是针对考研,故而学院派总结较多,不偏向务实使用。如果需要深入、广泛的学习 C 语言,请阅读《C Primer Plus》、 Brian W. Kernighan 的《C 程序设计语言》,并使用笔记: - [overnote-linux 中的 C 语言笔记](https://github.com/overnote/over-linux/tree/master/%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80) 最后,笔者认为 Go 语法极简,读者即使不具备 Go 语言基础也能看懂代码,是继 Java、Python 之后,笔者认为比较适合作为学习数据结构实现的语言。如果对 Go、JavaScript 语言有兴趣,也可以查看笔者的笔记进行详细学习: - [Golang 笔记](https://github.com/overnote/over-golang) - [JavaScript 笔记](https://github.com/overnote/over-javascript) TODO: 在可期的未来,笔者也会将 Java、Python 部分慢慢追加上。 ## 数据结构与算法书籍推荐 **入门**: - [《大话数据结构》](https://book.douban.com/subject/6424904/):适合 0 基础时了解数据结构,但是书中的小错误,啰嗦的地方较多 - [《漫画算法》](https://book.douban.com/subject/33420587/):全彩配图,有趣的基础入门书 - [《算法图解》](https://book.douban.com/subject/26979890/):适合算法基础薄弱时入门算法 **基础**: - [《算法精解》](https://book.douban.com/subject/14267904/) - [《算法》第 4 版](https://book.douban.com/subject/10432347/):经典书籍,最好的算法书籍之一,Java 编写 - [《数据结构》(邓俊辉)](https://book.douban.com/subject/25859528/):数据结构的集大成者,深入浅出 - [《趣学算法》](https://book.douban.com/subject/27109832/):覆盖了市面大部分算法 **提升**: - [《数据结构与算法分析》-C 语言描述](https://book.douban.com/subject/4924153/):数据结构与算法进阶的巨匠,也拥有 Java 版本:[传送门](https://book.douban.com/subject/26745780/) - [《算法设计与分析基础》](https://book.douban.com/subject/26337727/) - [《算法新解》](https://book.douban.com/subject/26931430/):大量复杂数据结构的深入,难度较大 - [《算法详解(卷 1)——算法基础》](https://book.douban.com/subject/30424415/):有卷一、卷二两本 **成神**: - [《算法导论》](https://book.douban.com/subject/1885170/):算法领域的代表作 - [《计算机程序设计艺术》](https://book.douban.com/subject/1130500/):恢弘巨作,算法领域的里程碑 **刷题**: - [《程序员面试金典》(第 6 版)](https://book.douban.com/subject/34813624/) - [《程序员代码面试指南》](https://book.douban.com/subject/26638586/):面试指南之一 - [《剑指 offer》](https://book.douban.com/subject/27008702/):面试指南之一 - [《编程珠玑》](https://book.douban.com/subject/3227098/):为算法提供了精辟的解题思路,是算法思想学习的瑰宝 - [《编程之美》](https://book.douban.com/subject/3004255/):微软面试指南集合 **一些网站**: - [力扣](https://leetcode.com/):著名的算法题网站 - [牛客网](https://www.nowcoder.com/):面向基础与面试的算法题库 **笔者推荐的学习方式**: 如果完全是零基础,建议通过视频来学习,B 站上拥有大量零基础数据结构教学视频,搜索即可。稍微拥有一点基础后,笔者推荐的书籍是:考研使用邓的《数据结构 C++语言描述》,工作面试使用《算法》第 4 版,后续就是做题了。 ## 附录:笔记汇总 **OverNote**全系列地址: 欢迎关注 up 主: **OverNote 分类**: - [Go 笔记](https://github.com/overnote/over-golang):详尽的 Go 领域笔记:Go 语法、Go 并发编程、GoWeb 编程、Go 微服务等 - [大前端](https://github.com/overnote/over-javascript):包含 JavaScript、Node.js、vue/react、微信开发、Flutter 等大前端技术 - [数据结构与算法](https://github.com/overnote/over-algorithm):以 Go 实现的数据结构与算法的笔记,附 C,JavaScript 版本 - [分布式与微服务架构](https://github.com/overnote/over-server):分布式与微服务等架构笔记,附 mysql、redis、nginx、docker、k8s 等笔记 - [Linux](https://github.com/overnote/over-linux):计算机组成原理、操作系统、计算机网络、编译原理基础学科笔记 - [大数据](https://github.com/overnote/over-bigdata):大数据笔记,完善中 - [Python](https://github.com/overnote/over-python):Python 相关笔记,完善中