hello-algo,一个免费的算法学习开源项目

简介: hello-algo,一个免费的算法学习开源项目

作为一名技术爱好者,看到好的开源项目总是忍不住想要推荐给身边的朋友。最近小编也一直想要重新写一些算法相关的内容,就看到了githubhello-algo项目。这个项目将算法学习的书籍搬到了线上进行开源。虽然相对于以前打ACM时用到的一些大佬的模板来说(例如邝斌的模板),算法体量小很多,但是这个项目讲解得更为详细,支持的语言也蛮多,对于算法体量来说只是一个补充的时间问题。感兴趣的朋友可以关注一下。

Hello-algo项目简介

正如这个项目的名字一样,这个项目在介绍的时候也提到了适用范围:

若您是算法初学者,从未接触过算法,或者已经有一些刷题经验,对数据结构与算法有模糊的认识,在会与 不会之间反复横跳,那么这本书正是为您量身定制!如果您已经积累一定刷题量,熟悉大部分题型,那么本书可助您回顾与梳理算法知识体系,仓库源代码可以 被当作“刷题工具库”或“算法字典”来使用。

内容下载

该项目的链接为:https://github.com/krahets/hello-algo,可以直接fork一把,然后git clone下来,关于git的使用方法,可以看小编的这篇文章git配置密钥及提交代码到仓库

在线学习的网站链接为:https://www.hello-algo.com/

同时,项目提供了下载的pdf,地址为:https://github.com/krahets/hello-algo/releases

如果有朋友无法前往下载,也可以在本公众号回复消息【算法】关键字进行下载。

内容介绍

我们从书中的内容来看

一共包含15章的算法内容,分别是初识算法讲算法是什么,复杂度分析主要讲时间复杂度和空间复杂度,以及如何使用时间换空间或者空间换时间。这两种时间复杂度的相互转换需要根据当时场景中对应的痛点进行分析。数据结构这一篇里面包含的内容是数组、链表和列表,这些基本的数据结构是构成任何一种复杂的数据结构的基础,吃透这几个基础数据结构是很有必要的。栈和队列这一篇包含栈、队列和双向队列,在我们的计算机中,栈和队列使用得是非常多的,例如,理解栈和队列,也有助于拓宽我们的思维方式和逻辑。哈希表这一篇包含哈希排序、哈希冲突等内容,哈希表其实是一个伟大的发明,它可以有效减少空间,小编使用过一种名叫布隆过滤器的哈希算法,将几千万量级的存储空间压缩到一个几百位的空间中进行实现,但正如内容讲到的一样,哈希算法是存在位置冲突的,需要掌握它的优缺点。树、图、堆这些算法是数据结构算法的延伸算法,在工作中用得蛮多的。搜索算法主要讲的是二分查找算法,二分搜索主要是针对单调递增或者递减的方式的问题求解,对应二分搜索,还有三分搜索算法,求解的是极值问题,即具有最大值和最小值的单峰问题。排序部分讲了十几种排序算法,排序算法的学习过程可以先由高时间复杂度逐步转向到低时间复杂度的过程,注重理解计数排序和基数排序的区别。分治和回溯递归求解子问题,分治其实是一种思维方式,一个问题是由一个或多个子问题构成。动态规划目前只涉及背包问题,可能未来会更新。最后是贪心,贪心其实不是一种算法,只是一种思维方式。

总的来说,现目前的阶段,整个项目还是起步阶段,算法的内容缺失蛮多的,拿来做算法的入门还是不错的,想要更进一步的学习,还是需要看算法导论或者找一些ACM大佬总结的各类算法模板。

目录
相关文章
|
28天前
|
存储 算法
数据结构与算法学习二二:图的学习、图的概念、图的深度和广度优先遍历
这篇文章详细介绍了图的概念、表示方式以及深度优先遍历和广度优先遍历的算法实现。
45 1
数据结构与算法学习二二:图的学习、图的概念、图的深度和广度优先遍历
|
9天前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习之串(12)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丟脸好嘛?】
数据结构与算法系列学习之串的定义和基本操作、串的储存结构、基本操作的实现、朴素模式匹配算法、KMP算法等代码举例及图解说明;【含常见的报错问题及其对应的解决方法】你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
2024重生之回溯数据结构与算法系列学习之串(12)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丟脸好嘛?】
|
25天前
|
缓存 算法 Java
JVM知识体系学习六:JVM垃圾是什么、GC常用垃圾清除算法、堆内存逻辑分区、栈上分配、对象何时进入老年代、有关老年代新生代的两个问题、常见的垃圾回收器、CMS
这篇文章详细介绍了Java虚拟机(JVM)中的垃圾回收机制,包括垃圾的定义、垃圾回收算法、堆内存的逻辑分区、对象的内存分配和回收过程,以及不同垃圾回收器的工作原理和参数设置。
50 4
JVM知识体系学习六:JVM垃圾是什么、GC常用垃圾清除算法、堆内存逻辑分区、栈上分配、对象何时进入老年代、有关老年代新生代的两个问题、常见的垃圾回收器、CMS
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
【EMNLP2024】基于多轮课程学习的大语言模型蒸馏算法 TAPIR
阿里云人工智能平台 PAI 与复旦大学王鹏教授团队合作,在自然语言处理顶级会议 EMNLP 2024 上发表论文《Distilling Instruction-following Abilities of Large Language Models with Task-aware Curriculum Planning》。
|
26天前
|
算法
动态规划算法学习三:0-1背包问题
这篇文章是关于0-1背包问题的动态规划算法详解,包括问题描述、解决步骤、最优子结构性质、状态表示和递推方程、算法设计与分析、计算最优值、算法实现以及对算法缺点的思考。
56 2
动态规划算法学习三:0-1背包问题
|
9天前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习(8)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第2.3章之IKUN和I原达人之数据结构与算法系列学习x单双链表精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
9天前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习之顺序表【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
顺序表的定义和基本操作之插入;删除;按值查找;按位查找等具体详解步骤以及举例说明
|
9天前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习之单双链表精题详解(9)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第2.3章之IKUN和I原达人之数据结构与算法系列学习x单双链表精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
9天前
|
存储 Web App开发 算法
2024重生之回溯数据结构与算法系列学习之单双链表【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构之单双链表按位、值查找;[前后]插入;删除指定节点;求表长、静态链表等代码及具体思路详解步骤;举例说明、注意点及常见报错问题所对应的解决方法
|
9天前
|
算法 安全 NoSQL
2024重生之回溯数据结构与算法系列学习之栈和队列精题汇总(10)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第3章之IKUN和I原达人之数据结构与算法系列学习栈与队列精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!