算法的空间复杂度通过计算算法所需的存储空间实现, 算法的空间复杂度的计算公式记作:S(n) = O(f(n)), 其中,n 为问题的规模,f(n) 为语句关于 n 所占存储空间的函数。 通常,我们都是用 “时间复杂度” 来指运行时间的需求,是用 “空间复杂度” 指空间需求。 当不用限定词地使用 “复 ...
分类:
编程语言 时间:
2021-01-06 12:14:18
阅读次数:
0
《大话数据结构》内容简介:数据结构介绍、算法推导大O阶的方法;顺序结构与链式结构差异、栈与队列的应用;串的朴素模式匹配、KMP模式匹配算法;二叉树前中后序遍历、赫夫曼树及应用;图的深度、广度遍历;最小生成树两种算法、最短路径两种算法;拓扑排序与关键路径算法;折半查找、插值查找、斐波那契查找等静态查找 ...
分类:
其他好文 时间:
2020-03-10 21:29:34
阅读次数:
67
之前在看一些算法书的时候,常会遇到判断算法的时间复杂度的问题,阅读了《大话数据结构》的内容,弄明白了这个问题,在这里记录一下,在以后的学习中不断补充和改正。 首先把涉及到的名词列出来 n 问题规模。指算法完成的任务的输入变量,比如说for循环的循环次数。 f(n) 操作数量。指在n次的输入规模下,代 ...
分类:
编程语言 时间:
2020-02-28 20:39:56
阅读次数:
58
对于入门的同学不建议过度追求看上去很经典的书籍,例如:《算法导论》/《算法》这些书。可以看一些相对容易看的书来入门,例如《大话数据结构》、《算法图解》。 《大话数据结构》这本书最大的特点是它将理论讲的非常有趣,不枯燥。而且每个数据结构和算法作者都结合生活中的例子进行讲解,虽然这本书有400+页,但是 ...
分类:
编程语言 时间:
2020-02-22 00:29:16
阅读次数:
85
1.写出自己寒假前3周的具体技术学习收获,所花时间及完成代码量。如在某些技术上所学习的哪些知识点,所花费的总小时,代码总行数。 每天花费两小时看java基础视频教学,共计14天(共30小时左右),学习了继承,数组和接口等相关知识,完成代码大约1000行。 每天花费一小时看《大话数据结构》,共计10天 ...
分类:
其他好文 时间:
2020-02-02 19:17:39
阅读次数:
67
第一章 数据结构绪论 数据结构: 是相互之间存在一种或多种特定关系的数据元素的集合。 1.3 数据结构起源 早期人们把计算机理解为数值计算攻击,就是感觉计算机当然是用来计算的,所以计算机解决问题,应该是先从具体问题中抽象出一个社和的数据模型,设计出一个解此数据模型的算法,然后再编写程序,得到一个实际 ...
分类:
其他好文 时间:
2020-01-06 09:21:29
阅读次数:
111
1.开场白 算法是解决特定问题求解步骤的描述, 在计算机中表现为指令的有限序列, 并且 每条指令表示一个或多个操作。也就是数据结构与算法分析的过程。 现在我要求你写一个求 1+2+3+……+100 结果的程序,大部分人这么写: 这相当于另外一种求等差数列的算法,等差数列是指从第二项起,每一项与它的前... ...
分类:
编程语言 时间:
2019-12-18 14:57:11
阅读次数:
81
接上文,研究了一下算法之后,发现大话数据结构的代码风格更适合与前文中邻接矩阵的定义相关联,所以硬着头皮把大话中的最小生成树用自己的话整理了一下,希望大家能够看懂。 一、最小生成树 1,问题 最小生成树要解决的是带权图 即 网 结构的问题,就是n个顶点,用n-1条边把一个连通图连接起来,并且使得权值的 ...
分类:
编程语言 时间:
2019-12-18 14:37:54
阅读次数:
91
1.开场白 数据结构 是 相互之间存在一种或多种特定关系的数据元素的集合。如下图: ...
分类:
其他好文 时间:
2019-12-17 18:50:38
阅读次数:
88
经典快排 经典快排的思路是选取数组的最后一个数 x,按照 "问题一" 的思路把整个数组划分成 两个部分,将 x 和 大于 x 部分数组的第一个元素交换位置。此时整个数组划分成 三个部分,也就是这一次排序将 x 值排好位置。 再分别对 和 中的数组递归划分,直到划分成一个数,此时所有元素也完成排序。 ...
分类:
编程语言 时间:
2019-11-19 13:43:17
阅读次数:
79