本系列是《玩转机器学习教程》一个整理的视频笔记。前一小节实现了简单线性回归,但是性能比较低。本小节主要介绍使用向量化的方式提升性能。
这个问题 我们生活中有一个典型应用: 使用导航软件帮我们规划从 出发地 到 目的地 的最短路线 今天我们就来研究一下:导航软件如何计算"最短路线" 抽象 首先我们需要将导航软件中的地图抽象成一种数据结构 关于 图 的介绍 于是我们可以这样对应: 顶点 > 地图上的路口 边 > 两个路口间的道路 入度和出度 > 道路的方向 边的权重 > 两个路口间的距离 按照上面的思路我们抽象成图就是这样的: 数据结构是为算法服务的 ,我们将地图抽象成数据结构 图 之后, 下一步就是在该数据结构上设计出一种算法来计算出最短路线。 的最短路径,所以之前无法到达的顶点(4、6),在该步骤就可以通过顶点5间接的到达了 于是再次统计距离 dist 1-2:270 dist 1-3:300 dist 1-4 > 1-5 (200) + 5- 3 细节来了,注意看这里的顶点4,由于前两步我们打通了顶点2、5的最短距离,因此到达顶点4的路径有两条: dist 1-4 > 1-5 (200) + 5-4(260):460 1-2 (270) +
习题5-4 使用函数求素数和 本题要求实现一个判断素数的简单函数、以及利用该函数计算给定区间内素数和的函数。 素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。
表达式 在学习数据结构和算法时,我们常常会接触到表达式的不同写法,它们分别是中缀表达式、前缀表达式和后缀表达式。 我们日常最熟悉的表达形式就是中缀表达式,如下所示: 5-4\*3/(2+1) 中缀表达式最符合人类的书写和阅读习惯,但对于计算机来说,它却并不友好。 虽然中缀表达式易于阅读,但它存在如下问题: 运算顺序不明确,依赖运算符优先级与括号; 结构不够线性,计算过程复杂,不适合计算机直接解析。 流程如下: 二、前缀表达式 前缀表达式又称波兰表达式,其特点是:运算符写在两个操作数的前面,如下所示: -5\*4/3+12 该前缀表达式所对应的中缀表达式是 5-4\*3/(2+1) 前缀表达式的优势在于 总结 从计算机处理的角度来看,前缀和后缀表达式具有更明确的结构和更线性的执行流程,只需借助一个栈即可完成整个表达式的计算过程。
一、题目描述 本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和。 输入格式: 输入在一行中给出一个正整数N。 输入样例: 5 输出样例: 0.917 二、思路分析 观察交错序列 1-2/3+3/5-4/7+5/9-6/11+...发现, 分子:1,2,3,4,5,6...
1.概述 数据结构,就是一种程序设计优化的方法论,研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,目的是加快程序的执行速度、减少内存占用的空间。 2.数据间逻辑关系 数据的逻辑结构指反映数据元素之间的逻辑关系,而与数据的存储无关,是独立于计算机的。 集合结构:数据结构中的元素之间除了“同属一个集合” 的相互关系外,别无其他关系。 线性结构:数据结构中的元素存在一对一的相互关系。比如:排队。结构中必须存在唯一的首元素和唯一的尾元素。体现为:一维数组、链表、栈、队列 树形结构:数据结构中的元素存在一对多的相互关系。 比如:家谱、文件系统、组织架构 图形结构:数据结构中的元素存在多对多的相互关系。比如:全国铁路网、地铁图 3.数据的存储结构(或物理结构) 数据的物理结构/存储结构:包括数据元素的表示和关系的表示。 数据的存储结构是逻辑结构用计算机语言的实现,它依赖于计算机语言。 3.1顺序结构 顺序结构就是使用一组连续的存储单元依次存储逻辑上相邻的各个元素。
功能需求 2.2.1 角色分析 2.2.2 业务功能 2.3 非功能需求 2.3.1环境需求 2.3.2 性能需求 2.3.3 安全需求 3 总体设计 3.1 系统设计的原则 3.2 系统体系结构设计 统计分析管理功能构建设计 4 数据库设计 4.1 概念结构设计 4.1.1 设计思路 4.1.2 总体E-R图 4.1.3 实体属性设计 4.2 逻辑结构设计 4.2.1 设计思路 4.2.2 逻辑模型 4.3 物理结构设计 4.3.1 存取方式 4.3.2 存储结构 5 界面设计 5.1 界面关系图或工作流图 5.2 界面设计成果 5.2.1 主界面 5.2.2 子界面 6 详细设计 6.1 系统主要功能模块介绍 如图5-2所示: image.png 图5-2 固定资产投资监管微信平台系统首页 子界面 用户个人信息展示界面,如图5-3所示: image.png 图5-3 用户个人信息页面 项目法人功能首页,如图5- 4所示: image.png 图5-4 项目法人首页 项目法人项目申请页面,如图5-5所示 image.png 图5-5 项目法人项目申请页面 项目申请信息页面,如图5-6所示: image.png 图
count+1 sum=sum+eval(s) s=input() print("该歌手最终成绩为{:.1f}".format(sum/count)) 【PYTHON】1-2/3+3/5- #循环 题目描述 求和 1-2/3+3/5-4/7+5/9-6/11+...
数据结构:相互之间存在一种或多种特定关系的数据元素的集合 1.数据结构分为逻辑结构和物理结构 集合结构:集合结构中的数据元素除了同属于一个集合外,他们之间没有其他关系 ? 线性结构:线性结构中的数据元素之间是一对一的关系 ? 树形结构:树形结构中的数据元素之间存在一种一对多的层次关系 ? 图形结构:图形结构中的数据元素是多对多的关系 ? 2.物理逻辑:也叫作存储结构,是指数据的逻辑结构在计算机中的存储形式 分为循序存储结构和链式存储结构 顺序存储结构:把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的 ? 链式存储结构:把数据元素存放在任意的存储单元中,可以连续可以不连续,并不能反映其逻辑关系,因此需要一个指针存放其他数据元素的地址,这样通过地址找到相关联数据元素的位置 ?
逻辑结构 逻辑结构:是指数据对象中数据元素之间的相互关系. 逻辑结构分为以下四种: 1.集合结构 集合结构:集合结构中的数据元素除了同属于一个集合外,它们之间没有其他关系. 集合结构图示 集合结构画风如下: 2.线性结构 线性结构:线性结构中的数据元素之间存在一个对一个的关系. 线性结构图示 线性结构画风如下: 3.树形结构 树形结构:树形结构中的数据元素之间存在一种一对多的层次关系. 树形结构图示 树形结构画风如下: 4.图形结构或网状结构 图形结构:图形结构的数据元素是多对多的关系. 【数据结构】基本概念和术语 【数据结构】逻辑结构与物理结构 【数据结构】抽象数据类型 ...... 数据结构绪论篇思维导图:
该索引平均在每台节点的分片数)复制4、计算每个索引在所有节点的权重及差值假设先遍历到index1,index1在3台节点上的分片个数分别为3、2、1,index1在每台节点上的权重分别为:node1:(5- 4)* 0.45 + (3-2)*0.55 = 1node2:(5-4)* 0.45 + (2-2)*0.55 = 0.45node3:(2-4)* 0.45 + (1-2)*0.55 = -1.45index1 在3台节点的权重差为最大值减去最小值=1+1.45=2.45 > 1复制index2在3台节点上的分片个数分别为2、3、1,index2在每台节点上的权重分别为:node1:(5-4)* 0.45 + (2-2)*0.55 = 0.45node2:(5-4)* 0.45 + (3-2)*0.55 = 1node3:(2-4)* 0.45 + (1-2)*0.55 = -1.45index2在3台节点的权重差为最大值减去最小值 此时就是node1上的分片少了一个,node3上的分片多了一个),试图迁移中index1在每个节点上的权重分别为:node1:(4-4)* 0.45 + (2-2)*0.55 = 0.0 node2:(5-
什么是数据结构 数据结构是互相之间存在一种或多种特定关系的数据元素的集合,此解释来自于《大话数据结构》。小白表示这都什么玩意啊。 数据结构的分类 数据结构可以分为两类,逻辑结构和物理结构,而逻辑结构实际上就是数据对象和数据之间的一种关系,逻辑结构又可以分为集合结构、线性结构、树形结构、图形结构。 2.1 逻辑结构 集合结构 集合结构是指在各个数据属于同一个集合之中,他们是同级平等的类似于高中数学中的集合。 ? 线性结构 线性结构指的是元素之间是一一对应的 ? 树形结构 树形结构就像树一样,一个主干存在一个或者多个分支。数据中一个结点存在一个或者多个关系,如红黑树、二叉树。 ? 图形结构 图形结构是指数据之间存在多对多的一种关系。 ? 2.2 物理结构 物理结构实际上就是在内存或硬盘上的存储结构,好比一个文件当我们存储在硬盘或者磁盘上时实际上他存放的是文件的二进制数据,而物理结构反应的就是逻辑结构在计算机上存储的一种形式,物理结构可分为顺序存储结构和链式存储结构
反接故障——反接是因为进行端接操作时将同一线对在铜缆两端的针位接反了,比如一端为5-4,另一端却为4-5。 错对故障——错对就是将一对线接到另一端的另一对线上,比如一端接在了5-4针上,另一端却接在了3-6针上。 串绕故障——串绕是将原来的两对线分别拆开后又重新组成的线对,包括分岔线对、分离线对和拆分线对。
什么是逻辑结构 数据对象中数据元素之间的相互关系。 逻辑结构的种类 集合结构:元素之间没有特定的相连的关系,但每个元素只能有一个不能重复。 集合结构 树形结构:元素只有一个根节点,和多个子树,以及多个叶子节点。 树形结构 图形结构:元素之间存在一对多的关系。 图形结构 线性结构:元素之间是以一条线相连的。 线性结构 什么是物理结构 数据在物理内存分配的情况,也叫存储结构。 物理结构的种类 顺序存储:元素之间存储的位置是连续的。
从结构上来看,双向链表可以支持 O(1) 时间复杂度的情况下找到前驱结点,正是这样的特点,也使双向链表在某些情况下的插入、删除等操作都要比单链表简单、高效。
概述 C语言支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构。 顺序结构:程序按顺序执行,不发生跳转。 选择结构:依据是否满足条件,有选择的执行相应功能。 循环结构:依据条件是否满足,循环多次执行某段代码。 1、选择结构 if语句 ? ? if…else语句 ? ? if…else if…else语句 ? ? 三目运算符 ?
vexs[MAX_VERTEX_NUM]; //顶点表 AdjMatrix arcs; //邻接矩阵 int vexnum,arcnum; //图的顶点数和弧数 }; 2、邻接表 邻接表的结构如下 EdgeNode { public: int adjvex; //这条边指向哪个顶点 int weight; //权值 EdgeNode* next; //指向下一条依附该顶点的边 }; // 顶点结构 class VertexNode { public: int value; //顶点的值 EdgeNode *firstedge; //指向第一条依附该顶点的边 }; // 图结构 class weight) 0 A -> 1(10) -> 2(6) -> 3(4) 1 B -> 2(7) 2 C -> 1(9) -> 3(5) 3 D -> 1(8) 同时还有存储入边的逆邻接表: 已知存储结构 (利用队列结构实现,与层序遍历思路相似) 入队时访问该顶点,出队时将该顶点所有未被访问的邻接点依次入队。
^ D ^ class TreeNode{ elemtype info; TreeNode *FirstChild,*NextSibling; }; 二、二叉树遍历 1、二叉树存储结构 层序遍历的实现需要利用队列结构,首先将根节点入队,当队列中有元素时,执行以下操作:将队首元素出队,对该元素进行操作,并将该元素的左子树、右子树依次入队。 层序遍历并不需要用到递归。 其带权路径长度可以表示为WPL=\sum_{k=1}^nw_kl_k 1、存储设计 为了得到哈夫曼树,我们需要使用一种存储方式存储各个结点,为了便于算法计算,我们利用如下的结构作为结点: class TreeNode
Ackerman函数有A(n,m)有两个独立的整变量m\ge0,n\ge0,其定义如下
顺序队列和链式队列 我们知道了,队列跟栈一样,也是一种抽象的数据结构。它具有先进先出的特性,支持在队尾插入元素,在队头删除元素,那究竟该如何实现一个队列呢? 确实,队列这种数据结构很基础,平时的业务开发不大可能从零实现一个队列,甚至都不会直接用到。而一些具有特殊特性的队列应用却比较广泛,比如阻塞队列和并发队列。 阻塞队列其实就是在队列基础上增加了阻塞操作。 内容小结 我的代码实现 https://gitee.com/kaiLee/struct/tree/master/src/main/java/com/s4 今天我们讲了一种跟栈很相似的数据结构,队列。 除此之外,我们还讲了几种高级的队列结构,阻塞队列、并发队列,底层都还是队列这种数据结构,只不过在之上附加了很多其他功能。阻塞队列就是入队、出队操作可以阻塞,并发队列就是队列的操作多线程安全。