Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

liyaoo1995/over-algorithm

Repository files navigation

笔记说明

本算法笔记采用Go语言描述,同时内部引用了Go的一些专有函数,如append(),这样做屏蔽了很多底层数据元素的操作细节,但是快速实现了数据结构,适合解题与实际应用,不是学院派风格。

源码中并未采取面向接口、继承等思想来实现工具方法的复用,尤其是在二叉搜索树、红黑树等章节,每个章节都具备自己独立的代码。因为笔者认为这些笔记是用来学习数据结构的,而不是用来学习面向对象思想的,过渡抽象会给初学者造成困惑。笔者的意愿是:学习者拿到每个数据结构,都可以做到信手拈来,直接使用,而不是还要查询其继承结构。

笔者使用Go语言记录数据结构与算法笔记的原因:

  • C:非面向对象,笔者认为不适合快速学习,会耗费一定的时间在内存管理之上
  • C++:拥有面向对象功能,但是同样需要进行内存管理,会耗费一定的时间在此之上
  • js/py:脚本语言写法变换太多,且很多结构在底层与大多语言结构特性不符,比如js的数组其实是哈希表
  • java:具备面向对象,且语法严谨规范,适合学习与教学,但是市面上Java相关的数据结构教程层出不穷,已经做得很好了
  • go:与Java一样严谨,完备,且语法上更加简洁,市面上很好的go算法书籍、教程极少

Go语法极简,读者即使不具备Go语言基础也能看懂代码,如果对Go语言有兴趣,也可以查看笔者的Golang笔记进行详细学习。

源码食用指南:

为了便于初学者、非Golang语言开发者方便阅读源码,每份源码提供了极简的单元测试案例,直接运行即可。

当然为了能够详细了解底层操作信息,笔者在sources文件夹也提供了C语言版本,严格按照学院派风格(如严蔚敏版)对数据结构、算法进行描述,适合学习考研。
同时笔记也将提供JavaScript作为动态语言版本的示例学习数据结构与算法,未来可能考虑引入C++、Python、Java版本。

数据结构与算法书籍

1.1 入门书籍

1.2 基础书籍

1.3 算法加强

1.4 算法进阶

1.5 算法题

1.6 算法设计

算法资料

  • 力扣:著名的算法题网站
  • 牛客网:面向基础与面试的算法题库

附录:笔记汇总

OverNote全系列地址:https://github.com/overnote

欢迎关注up主:https://github.com/ruyuejun

OverNote分类:

  • Go笔记:详尽的Go领域笔记:Go语法、Go并发编程、GoWeb编程、Go微服务等
  • 大前端:包含JavaScript、Node.js、vue/react、微信开发、Flutter等大前端技术
  • 数据结构与算法:以Go实现的数据结构与算法的笔记,附C,JavaScript版本
  • 分布式与微服务架构:分布式与微服务等架构笔记,附mysql、redis、nginx、docker、k8s等笔记
  • Linux:计算机组成原理、操作系统、计算机网络、编译原理基础学科笔记
  • 大数据:大数据笔记,完善中
  • Python:Python相关笔记,完善中

About

算法笔记:[进度40%]数据结构与算法Go语言描述,附C、JS版本

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

  • Go 88.8%
  • C 7.7%
  • JavaScript 3.5%

AltStyle によって変換されたページ (->オリジナル) /