数据结构与算法
记录数据结构与算法的学习(概念与实现)
jaycain
模式识别与智能系统硕士研究生在读。
展开
-
理解深度优先搜索和广度优先搜索
深度优先搜索 其实是一种递归的思想。 前序遍历: void dfs(TreeNode* root){ if(root==nullptr) return; process(root->val); //当前节点数据处理 dfs(res,root->left); dfs(res,root->right); } 中序遍历: void dfs(TreeNode* root){原创 2021-10-29 19:12:41 · 263 阅读 · 0 评论 -
Python数据结构常用表示方法
对python中常用的数据结构的简单实现/包调用的总结 1、动态数组(用列表List表示) # 初始化可变数组 array = [] # 向尾部添加元素 array.append(2) array.append(3) array.append(1) array.append(0) array.append(2) 2、链表(用对象Class表示) 链表以节点为单位,每个元素都是一个独立对象,在内存空间的存储是非连续的。链表的节点对象具有两个成员变量:「值 val」,「后继节点引用 next」 。 clas原创 2021-01-07 19:04:05 · 805 阅读 · 0 评论 -
利用双栈实现队列的原理
栈 栈我们知道是遵循:先进后出原则。那么要想删除最开始的那个元素,那么就得将所有后面放进去的元素都出栈。 队列 队列则不同,遵循先进先出原则,就像一个两端开口的水管,先进去就先从另一端出来。 双栈实现队列 从上我们可以知道,单单一个栈是完全不同于队列的,因为他们天生机理不同,或者说相反。相反!对,就是这个!那如果我们有两个栈呢?一个栈A将所有元素弹栈,依次放入另外一个栈B。那这个时候栈B的栈顶不就是刚刚最开始进入栈A的那个元素了吗!对栈B进行弹栈,不就实现了先进先出的功能了吗!原来如此简单! ...原创 2020-12-22 20:11:39 · 409 阅读 · 0 评论 -
朴素贝叶斯算法的简单总结
引理 先验概率 先验概率:是指根据以往经验和分析得到的概率.举例来说:比如我们摇色子,我们知道抛到任意一个点数的概率都为六分之一,这就是事先就知道的事情。或者我们有一个数据集,label为1和-1,那么我们知道任意一个数据的label为1的概率为二分之一。 后验概率 就是说我们知道结果,然后求引起这个结果的原因的概率。比如,桌子上如果有一瓶水,你如果喝了一口,然后你觉得是甜的,你说:100%加了糖.OK,你已经进行了一次后验概率的猜测。 朴素贝叶斯算法 朴素贝叶斯算法通过训练数据集学习联合分布概率分布P(X原创 2020-11-15 14:59:32 · 562 阅读 · 1 评论 -
K近邻与KdTree的简单理解
K近邻算法 k近邻算法是一种简单有效的分类与回归方法。其基本思想是:给定一个训练用的数据集,对于新的输入实例,在训练数据中找到与该实例最为相似或者接近的k个实例,通过某种表决规则,比如这k个实例的多数类别为某个类A,就把这个新输入的实例类别归为这个类A; k近邻算法是很简单与直观的。只需要通过简单的距离度量,比如计算新的输入实例与训练用的实例的欧式距离,然后取k个最近的,再少数服从多数,即可实现分类。 KdTree k近邻算法在处理大量数据时,由于是线性遍历计算给定测试用例与训练数据集每一个实例的距离,消耗原创 2020-11-15 10:42:49 · 513 阅读 · 0 评论 -
(2)算法的基本概念
这里写自定义目录标题基本概念与特性特性算法效率度量算法时间与空间复杂度 实际上,算法就是说为了解决特定问题设计的特定求解步骤。在计算机中就是说特定的指令序列。 基本概念与特性 算法描述解决问题的办法。是解决特定问题的求解步骤得描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或者多个操作。 特性 算法有五个基本特性:输入、输出、有穷性、确定性、可行性。 有穷性:算法执行有限步骤便解决完问题 确定性:算法在相同输入下输出相同。 可行性:算法能够实现,并得到正确结果。 好的算法的特性:正确性、可读性、健原创 2020-07-25 16:10:42 · 354 阅读 · 0 评论 -
(1)数据结构基本概念2分钟快速了解
基本定义 “数据结构是一门研究非数值计算程序设计问题的中的操作对象,以及它们之间关系和操作等相关问题的学科”---- 《大话数据结构》 可以看出数据结构是一种静态与动态的统一描述:对象、对象关系与操作。 有了描述对象(数据化)及描述对象关系与操作的方式后,即数据结构。为了解决问题,我们还需要算法来处理、利用这种数据结构(信息)。那么程序设计就可以浓缩为两个方面: 程序设计 = 数据结构 + 算法 数据:用于描述客观事物的符号,是计算机中可以操作的对象,是能够被计算机识别、输入处理的符号集合。 说白了就是我们原创 2020-07-24 21:59:22 · 200 阅读 · 0 评论