
算法数据结构
enlyhua
这个作者很懒,什么都没留下…
展开
-
6.算法通关面试 --- 广度优先and深度优先搜索
1.广度优先搜索深度优先搜索。原创 2023-01-21 12:53:29 · 440 阅读 · 0 评论 -
5.算法通关面试 --- 递归and分治and贪心
【代码】5.算法通关面试 --- 递归and分治。原创 2023-01-20 15:38:29 · 460 阅读 · 0 评论 -
1.算法通关面试 --- 数组和链表
两两交换链表中的节点。原创 2023-01-04 17:30:02 · 290 阅读 · 0 评论 -
0.算法通关面试 --- 基础
算法基础:原创 2023-01-04 13:27:16 · 145 阅读 · 0 评论 -
3.啊哈!算法 --- 一大波数正在靠近——枚举!很暴力
第1节 坑爹的奥数 第2节 炸弹人 第3节 火柴棍等式 第4节 数的全排列原创 2021-06-08 11:10:22 · 147 阅读 · 0 评论 -
2.啊哈!算法 --- 一大波数正在靠近——栈、队列、链表
第1节 解密QQ号——队列 第2节 解密回文——栈 第3节 纸牌游戏——小猫钓鱼 第4节 链表 第5节 模拟链表原创 2021-06-07 11:19:59 · 148 阅读 · 0 评论 -
算法设计与分析
1.算法及基础知识 1.算法的特性 1.输入 2.输出 3.确定性 4.有限性 5.可行性 2.算法分析 算法的复杂度指的是算法在运行过程中所需要的计算机资源的量,算法分析就是对该量的多少进行分析。 3.时间复杂性 是对算法运行时间长短的度量。分为事后统计法和事前分析估算法。 4.空间复杂性 是对一个算法在运行过程中所占用存储空间大小的度量。主要因素有: 1.存储算法本身所占用的存储空间 2.算法的输入输出所占用的空间 3.算法在运行过程中所.原创 2021-05-30 18:24:20 · 306 阅读 · 0 评论 -
1.啊哈!算法 --- 一大波数正在靠近——排序
1.最快最简单的排序——桶排序原创 2021-04-28 16:07:52 · 163 阅读 · 0 评论 -
10.数据结构 --- 内部排序
内部排序: 指的是待排序记录存放在计算机随机存储器中进行的排序过程。 外部排序: 指的是待排序记录的数量很大,以致内存一次不能容纳全部记录,在排序过程中尚需对外存进行访问的排序过程。 1.直接插入排序 将一个记录插入到已排序的有序表中。 2.其他插入排序 在直接插入排序的基础上,减少比较和移动。 1.折半插入排序 减少了关键字的比较次数,而记录的移动次数不变。时间复杂度为 O(n^2) 2. 2-路插入排序 是在折半插入排序的基础上再改进之,其目的是减少排序过程中的移动记录的.原创 2021-04-24 17:08:10 · 164 阅读 · 0 评论 -
9.数据结构 --- 查找
查找表,是由同一类型的数据元素(或记录)构成的集合。 判定树,树中每一个结点表示一个记录,结点中的值为该记录在表中的位置,通常描述这个查找过程的二叉树为判定树。 折半查找,判定树。折半查找法在查找成功时,进行比较关键字个数最多不超过树的深度,而具有n个结点的判定树的深度为 |log2n|+1。 哈希表: 常用的构造哈希函数的方法: 1.直接定址法:去关键字或者关键字的某个线性函数值为哈希地址。 2.数字分析法 3.平方取中法 4.折叠法 5.除留余数法 处理冲突的方法..原创 2021-04-24 00:30:20 · 170 阅读 · 0 评论 -
8.数据结构 --- 动态存储管理
1.概述 动态存储管理的基本问题是系统如何应用户提出的'请求'分配内存?又如何回收用户不再使用而'释放'的内存,以备新的'请求'产生时重新进行分配。 提出请求的用户可能是进入系统的一个作业,也可能是程序执行过程中的一个动态变量。 分配内存通常有两种做法: 1.系统继续从高地址的空闲块中进行分配,而不会理会已分配给用户的内存是否已空闲,直到分配无法进行时,系统才会回收所有用户不...原创 2019-12-03 23:01:37 · 798 阅读 · 0 评论 -
7.数据结构 --- 图
1.图的定义和术语 在图中的数据元素通常称作顶点(Vertex),V是顶点的有穷非空集合;VR是两个顶点之间的关系的集合。若<v,w>属于VR,则<v,w>表示从 v到w的一条弧(Arc),且称v为弧尾或初始点,称w为弧头(Head)或终端点,此时的图称为有向图。若<v,w>属于VR必有<w,v>属于VR,即VR 是对称的,则以无序对(v...原创 2019-12-01 21:55:40 · 175 阅读 · 0 评论 -
6.数据结构 --- 树和二叉树
1.树的定义和基本术语 树是n个结点的有限集。在任意一颗非空树中:(1)有且仅有一个特定的根(root)的结点;(2)当n>1时,其余结点可分为m个互补相交的有限集T1,T2...Tm, 其中每一个集合本身又是一棵树,并且称为根的子树。 树的结点包含一个数据元素及若干指向其子树的分支。结点拥有的子树数称为结点的度。度为0的结点称为叶子或终端结点。度不为0的节点称为非终端结点或...原创 2019-11-30 23:02:46 · 314 阅读 · 0 评论 -
5.数据结构 --- 数组和广义表
1.数组的定义 和线性表一样,所有的数据元素都必须属于同一数据类型。当n=1,n维数组就退化为定长的线性表。数组一旦被定义,它的维度 和维届就不再改变。 2.矩阵的压缩存储 矩阵中有许多值相同的元素或者是零元素。有时为了节省存储空间,对这类矩阵进行压缩存储。所谓的压缩存储是指:为多个值相同的元 只分配一个存储空间;对零元不分配存储空间。 假设值相同的元素或者是零元素在矩阵中的...原创 2019-11-26 23:55:39 · 349 阅读 · 0 评论 -
4.数据结构 --- 串
1.串类型的定义 串(string)是由零个或多个字符组成的有限序列。一般记为 s='a1a2...an' 其中,s是串的名字,用单引号括起来的字符序列就是串的值。 2.定长顺序存储表示 类似于线性表的顺序存储结构,用一组地址连续的存储单元存储串值的字符序列。在串的定长顺序存储结构中,按照预定义的大小,为每个定义的串变量分配 一个固定长度的存储区,则可用定长数组来描述: #de...原创 2019-11-25 23:21:00 · 292 阅读 · 0 评论 -
3.数据结构 --- 栈和队列
从数据结构角度看,栈和队列也是线性表,其特殊性在于栈和队列的基本操作是线性表操作的子集,它们是操作受限的线性表,因此可以 称为限定性的数据结构。 1.栈 栈是限定仅在表尾进行插入或删除操作的线性表。因此,对栈来说,表尾端有其特殊的含义,称为栈顶(top),相应的,表头端称为栈底。不含元素的空表 称为空栈。 栈又称为后进先出的线性表(last in first out,LIFO...原创 2019-11-24 23:59:34 · 262 阅读 · 0 评论 -
2.数据结构 --- 线性表
线性结构的特点是:在数据元素的非空有限集中,(1)存在唯一的被称作'第一个元素'的数据元素;(2)存在唯一的一个被称作'最后一个'的 数据元素;(3)除第一个之外,集合中的每个数据元素均只有一个前驱;(4)除最后一个之外,集合中的每个元素均只有一个后继。 1.线性表的类型定义 一个线性表是n个数据元素的有限序列。在复杂的线性表中,一个数据元素可以由若干个数据项组成,在这种情况下,常把数...原创 2019-11-24 17:57:11 · 343 阅读 · 0 评论 -
1.数据结构 --- 绪论
1.什么是数据结构 一般来说,用计算机解决一个具体问题时,大致需要经过以下几个步骤:首先要从具体问题抽象出一个适当的数学模型,然后设计一个解此数学模型的算法,最后 编出程序,进行测试,调整直到得到最终答案。寻求数学模型的实质是分析问题,从中提取操作的对象,并找出这些操作对象之间含有的关系,然后用数学的语言 加以描述。 具体问题 => 数学模型 => 设计算法 =>...原创 2019-11-23 16:00:26 · 390 阅读 · 0 评论 -
4.算法通关面试 --- 树和图
1. 2. 1.验证二叉搜索树 https://leetcode-cn.com/problems/validate-binary-search-tree/ 2.二叉搜索树的最近公共祖先 https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-sea...原创 2019-11-19 23:45:10 · 222 阅读 · 1 评论 -
3.算法通关面试 --- 哈希表和集合
golang原创 2019-11-18 23:44:03 · 240 阅读 · 1 评论 -
2.算法通关面试 --- 堆栈和队列
1.有效的括号 https://leetcode-cn.com/problems/valid-parentheses/ 2.用栈实现队列 https://leetcode-cn.com/problems/implement-queue-using-stacks/ 3.用队列实现栈 https://leetcode-cn.com/...原创 2019-11-17 00:05:46 · 194 阅读 · 1 评论