数据结构与算法
文章平均质量分 97
本专栏主要记录学习算法的一些笔记:主要参考 hello算法这本个人认为很好的算法书;另外其中还会有部分力扣算法题训练。
JU HE
一个专注于机器学习、深度学习的AI炼丹师。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
7- 排序算法
排序算法有很多种,平时记不住无所谓(现在都是各种高级API,自己写那有哪些高级API稳定啊,除非你能自己发明一种更加高效的排序算法),面试前那几种关键的一定要记住(思路、复杂度哪些)。【注】:本节排序算法都是以小到大排序。原创 2024-08-28 23:53:50 · 1159 阅读 · 0 评论 -
6 搜索算法 -- 二分查找、哈希优化策略
【注1】:本节二分查找都要求有序,我们规定都是按照从小到大的顺序重新认识搜索算法,大神还是写的很好的,大家膜拜就是了。原创 2024-08-23 15:38:51 · 724 阅读 · 0 评论 -
5 堆和图
【注】(并不难,不涉及递归、了解了堆化的思路就能写,可以说很简单—关键在于思路,代码没难度)**图(graph)是一种非线性数据结构,由顶点(vertex)和边(edge)组成。我们可以将图GGG抽象地表示为一组顶点VVV和一组边EEE的集合。**以下示例展示了一个包含 5 个顶点和 7 条边的图。原创 2024-08-15 20:50:38 · 708 阅读 · 0 评论 -
4-二叉树与多叉树
树这种数据结构天生就带有套娃的属性在,因此递归的算法在树里面应用非常广泛。另外,实际问题中,树结构非常常见,是我们必须要十分熟练的一类数据结构,也是一个练习递归算法例子最多的一章。总之,怎么强调树这种数据结构都不为过。原创 2024-08-09 21:46:31 · 923 阅读 · 0 评论 -
3 - 哈希表
哈希表的使用没什么好说的,就是Python里面dict的使用。但本博客我们不关心dict的使用,我们主要聚焦与哈希表在计算机底层是怎么实现的。哈希冲突、哈希算法、链式地址、开发寻址这些解决哈希冲突的手段。另外,上面还简单模拟了字典怎么用数组实现的、已经各种改进实现,个人觉得是练习代码的好案例。当练习材料来用即可了。直接看hello算法哈希表,这个已经讲的很好了,再写篇博客没这个写的好。原创 2024-07-06 10:53:03 · 1122 阅读 · 0 评论 -
2-数组和链表
这节主要是讲述基本的两种数据结构:数组和链表。【注】:这里的数组要和Python列表区分开来,虽然列表大部分情况下可以当中数组使用,但数据结构里面的数组和Python列表还是有一些区别的。cur = head# 这里cur是最后一个节点cur = headwhile cur:# 这里cur是None(最后一个节点的那个引用)原创 2024-07-05 18:00:15 · 888 阅读 · 0 评论 -
1- 栈和队列
栈如同叠猫猫,而队列就像猫猫排队。两者分别代表先入后出和先入先出的逻辑关系。另外,栈和队列我们不应只将其作为两种数据结构,还应将其当成两种编程思想来学习。很多具有先入后出、先入先出关系的问题都可以利用栈和队列的思想来解决。栈(stack)是一种遵循先入后出逻辑的线性数据结构。我们可以将栈类比为桌面上的一摞盘子,如果想取出底部的盘子,则需要先将上面的盘子依次移走。我们将盘子替换为各种类型的元素(如整数、字符、对象等),就得到了栈这种数据结构。原创 2024-07-05 15:44:21 · 742 阅读 · 0 评论 -
0 - 算法复杂度分析(涉及到很多递归的例子)
今天开始就要开始数据结构与算法的笔记书写了。本系列博客一切参考均来自github上的hello算法和部分力扣上的算法题。大家也可以参考学习。下面我们就从算法复杂度的学习开始。算法复杂度的概念引出源于一个问题,解决同一个问题的两个程序,如何判断这两个程序的优劣,以便我们选择更加高效的那个程序。也就是说,在能够解决问题的前提下,算法效率已成为衡量算法优劣的主要评价指标,它包括以下两个维度。时间效率:算法运行时间的长短。空间效率:算法占用内存空间的大小。原创 2024-06-30 11:51:33 · 1091 阅读 · 0 评论
分享