Skip to content

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

License

Notifications You must be signed in to change notification settings

schnappi-wkl/over-algorithm

 
 

Repository files navigation

笔记说明

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

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

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

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

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

Go版本数据结构与算法以实际应用为准则,基于go mod,环境,笔者建议直接安装go1.13以上版本即可,会默认开启 go mod。食用方式:

cd sources/go
go run main.go                  // 在 main.go 中打开想要的测试方法即可

C版本数据结构与算法以标准C为主,适合考研党,食用方式:

cd sources/c
cc main.c                       // 在 main.c 中打开想要的测试方法即可

JavaScript版数据结构与算法实现完全采用ES6、ES Module方式书写,需要编译支持。笔者已经配置好了编译模块,按照下列命令直接食用即可:

# 在sources/js 目录中  贴士:需要提前安装node.js。
npm install
npx babel-node index.js         // 在 index.js 中打开想要的测试方法即可

数据结构与算法书籍

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

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 86.8%
  • C 7.8%
  • JavaScript 5.4%