算法

数据结构与算法系列七(队列)

与世无争的帅哥 提交于 2020-03-02 13:08:30
1.引子 1.1.为什么要学习数据结构与算法? 有人说,数据结构与算法,计算机网络,与操作系统都一样,脱离日常开发,除了面试这辈子可能都用不到呀! 有人说,我是做业务开发的,只要熟练API,熟练框架,熟练各种中间件,写的代码不也能“飞”起来吗? 于是问题来了:为什么还要学习数据结构与算法呢? #理由一: 面试的时候,千万不要被数据结构与算法拖了后腿 #理由二: 你真的愿意做一辈子CRUD Boy吗 #理由三: 不想写出开源框架,中间件的工程师,不是好厨子 1.2.如何系统化学习数据结构与算法? 我想好了,还是需要学习数据结构与算法。但是我有两个困惑: 1.如何着手学习呢? 2.有哪些内容要学习呢? 学习方法推荐: #学习方法 1.从基础开始,系统化学习 2.多动手,每一种数据结构与算法,都自己用代码实现出来 3.思路更重要:理解实现思想,不要背代码 4.与日常开发结合,对应应用场景 学习内容推荐: 数据结构与算法内容比较多,我们本着实用原则,学习经典的、常用的数据结构、与常用算法 #学习内容: 1.数据结构的定义 2.算法的定义 3.复杂度分析 4.常用数据结构 数组、链表、栈、队列 散列表、二叉树、堆 跳表、图 5.常用算法 递归、排序、二分查找 搜索、哈希、贪心、分治 动态规划、字符串匹配 2.考考你 你还记得在数组那一篇中,我们说过基于线性表的数据结构有哪些吗?它们是:数组

【图论】最小生成树算法(prim和kruskal详解及对比)

心已入冬 提交于 2020-03-02 10:32:06
目录 一.最小生成树之 p r i m prim p r i m 算法 p r i m prim p r i m 完整代码(计算最短距离并输出路径) 堆优化版本 二.最小生成树之 k r u s k a l kruskal k r u s k a l 算法 k r u s k a l kruskal k r u s k a l 完整代码(计算最短距离并输出路径) 三. p r i m prim p r i m 和 k r u s k a l kruskal k r u s k a l 相对比 1. 1. 1 . 时间上 2. 2. 2 . 空间上 3. 3. 3 . USACO07DEC道路建设 B u i l d i n g R o a d s Building Roads B u i l d i n g R o a d s ( p r i m prim p r i m 算法+堆优化与 K r u s k a l Kruskal K r u s k a l +路径压缩对比) 一.最小生成树之 p r i m prim p r i m 算法 Prim算法适用于稠密图 Kruskal适用于稀疏图 M S T MST M S T ( M i n i m u m S p a n n i n g T r e e Minimum Spanning Tree M i n i m u m S p

【代码】Pythonの代码片段

房东的猫 提交于 2020-03-02 05:26:09
1) 实用方法 Pythonの清理文件及文件夹 Pythonの获取Gravatar头像地址 Pythonの获取beautifulphoto随机某图片 2) 排序算法 2.1) 比较排序 Pythonの插入排序 Pythonの合并排序 Pythonの冒泡排序 Pythonの堆排序(最大堆) Pythonの堆排序(最小堆) Pythonの快速排序 Pythonの希尔排序 2.2) 线性时间排序 Pythonの计数排序 Pythonの基数排序 Pythonの桶排序 更多 排序算法 ! 3) 数据结构 3.1) 队列 Pythonの最大优先级队列 Pythonの最小优先级队列 更多 数据结构 ! 4) 暂未分类 Python寻找第k小的元素 Python下的一些随机化算法 Python生成目录树 Python简单线程池 来源: oschina 链接: https://my.oschina.net/u/438371/blog/131956

《数据结构与算法》—— O(3N)=O(N) ?

家住魔仙堡 提交于 2020-03-01 22:52:24
上帝的磨盘转动很慢,但是却磨得很细。 ——毛姆 本文已经收录至我的GitHub,欢迎大家踊跃star 和 issues。 https://github.com/midou-tech/articles 数据结构的基本概念 数据结构 相互之间存在一种或多种特定关系的数据元素的集合,我总结一下就是描述数据关系的一种载体。 数据结构包括逻辑结构和存储结构两个层次的描述。 逻辑结构 描述数据逻辑关系的一种方式,与数据的存储无关。逻辑结构中数据元素之间的关系主要分为四种:集合结构、线性结构、树结构、图结构。所有的数据结构在逻辑上都可以用这四种中的一种。 存储结构 数据和数据元素逻辑关系的存储对象,也被称为物理结构。通常逻辑结构包含两种,链式存储和顺序存储。 顺序存储 数据元素存储在一块连续的内存空间上,例如数组,就是一块连续的空间。 链式存储 数据存储不一定在一块连续的内存空间上,例如单链表。 数据类型 是一组值的集合和定义在这个集合上的操作的总称。 抽象数据类型 由用户定义的表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称,具体包括三部分,数据对象、数据对象上关系的集合以及对数据对象基本操作的集合。 抽象数据类型有自己的定义格式: ADT 抽象数据对象名 { 数据对象:(数据对象的定义) 数据关系:(数据关系的定义) 基本操作:(基本操作的定义) } 算法与数据结构 算法

《数据结构与算法》—— O(3N)≈O(N) O(3N)=O(N)?

自作多情 提交于 2020-03-01 22:25:41
上帝的磨盘转动很慢,但是却磨得很细。 ——毛姆 本文已经收录至我的GitHub,欢迎大家踊跃star 和 issues。 https://github.com/midou-tech/articles 数据结构的基本概念 数据结构 相互之间存在一种或多种特定关系的数据元素的集合,我总结一下就是描述数据关系的一种载体。 数据结构包括逻辑结构和存储结构两个层次的描述。 逻辑结构 描述数据逻辑关系的一种方式,与数据的存储无关。逻辑结构中数据元素之间的关系主要分为四种:集合结构、线性结构、树结构、图结构。所有的数据结构在逻辑上都可以用这四种中的一种。 存储结构 数据和数据元素逻辑关系的存储对象,也被称为物理结构。通常逻辑结构包含两种,链式存储和顺序存储。 顺序存储 数据元素存储在一块连续的内存空间上,例如数组,就是一块连续的空间。 链式存储 数据存储不一定在一块连续的内存空间上,例如单链表。 数据类型 是一组值的集合和定义在这个集合上的操作的总称。 抽象数据类型 由用户定义的表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称,具体包括三部分,数据对象、数据对象上关系的集合以及对数据对象基本操作的集合。 抽象数据类型有自己的定义格式: 1ADT 抽象数据对象名 {2 数据对象:(数据对象的定义)3 数据关系:(数据关系的定义)4 基本操作:(基本操作的定义)5} 算法与数据结构 算法

《数据结构与算法》—— O(3N)=O(N) ?

邮差的信 提交于 2020-03-01 21:44:26
上帝的磨盘转动很慢,但是却磨得很细。 ——毛姆 本文已经收录至我的GitHub,欢迎大家踊跃star 和 issues。 https://github.com/midou-tech/articles 数据结构的基本概念 数据结构 相互之间存在一种或多种特定关系的数据元素的集合,我总结一下就是描述数据关系的一种载体。 数据结构包括逻辑结构和存储结构两个层次的描述。 逻辑结构 描述数据逻辑关系的一种方式,与数据的存储无关。逻辑结构中数据元素之间的关系主要分为四种:集合结构、线性结构、树结构、图结构。所有的数据结构在逻辑上都可以用这四种中的一种。 存储结构 数据和数据元素逻辑关系的存储对象,也被称为物理结构。通常逻辑结构包含两种,链式存储和顺序存储。 顺序存储 数据元素存储在一块连续的内存空间上,例如数组,就是一块连续的空间。 链式存储 数据存储不一定在一块连续的内存空间上,例如单链表。 数据类型 是一组值的集合和定义在这个集合上的操作的总称。 抽象数据类型 由用户定义的表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称,具体包括三部分,数据对象、数据对象上关系的集合以及对数据对象基本操作的集合。 抽象数据类型有自己的定义格式: 1ADT 抽象数据对象名 {2 数据对象:(数据对象的定义)3 数据关系:(数据关系的定义)4 基本操作:(基本操作的定义)5} 算法与数据结构 算法

pcl总结

断了今生、忘了曾经 提交于 2020-03-01 20:55:23
基本用法1、pcl功能介绍(解释各个模块和功能)2、开始/基本结构(介绍pcl基本数据结构和相关代码示例) 3、在自己项目中使用PCL(如何使用cmake PCL链接自己的项目) 4、如何编译PCL在POSIX / Unix系统。 5、解释PCL的cmake选项(基本的PCL cmake选项,以及如何调整以适应您的项目) 6、在windows上源代码构建pcl的依赖性 7、在windows上源码编译PCL 8、从MacPorts在Mac OS X上编译PCL及其依赖项和源 9、如何安装点云库在Mac OS X上使用自制程序 10、如何让你的PCL在Eclipse中作为一个项目 11、为PCL生成本地文件 12、矩阵变换点云 高级用法1、添加自定义point类型(解释了模板化点类型在PCL,为什么他们存在,以及如何创建和使用自己的PointT点类型) 2、编写新的PCL类(这个简短的指南作为HowTo和FAQ编写新的PCL类,从头开始,或者通过调整旧的代码) 应用程序 1、覆盖前面的教程可以组合解决一个更高层次的问题,调整之前捕获模型对象的一些新捕获的数据。 2、如何将视点特征直方图(VFH)描述符可以用来识别相似集群的几何学。 3、如何通过网络发送点云数据从一个桌面服务器到客户机运行在移动设备上 4、检测人与RGB-D地平面数据 特性1、PCL3 d功能如何工作(3D功能的评估方法

JVM垃圾回收算法于垃圾回收器

。_饼干妹妹 提交于 2020-03-01 20:35:31
GC如何判断对象是否存活 引用计数算法 可达性分析 引用计数器: 给对象添加一个引用计数器,当对象添加一个引用时计数器加1,引用失效时计数器减1,。引用计数为0的对象可被回收。 优点:快,方便,实现简单。 缺点:对象相互引用时(A.instance-B 同时 B.instance=A),很难判断是否该回收。 可达性分析: 该算法根据“GC Roots”的对象作为起点,向下搜索,其路径为引用连(Reference Chain),某对象没有任何引用链时,则证明该对象不可用。 GC Roots的对象包括: 当前虚拟机栈中局部变量表中的引用的对象 当前本地方法栈中局部变量表中的引用的对象 方法区中类静态属性引用的对象 方法区中的常量引用的对象 finalize :虽然可以完成对象拯救,但是JVM不一定会执行,是个“坑”。 各种引用 强引用 = 软引用 SoftReference 弱引用 WeakReference 虚引用 PhantomReference 强引用 :Object obj=new Object(),就是强引用 软引用 :内存充足是不会回收,内存不足时会回收,适用于缓存,一些有用但非必须的对象,进行OOM之前,就会被回收。 弱引用 :无论内存是否充足,都会被回收。例如:ThreadLocal、weakHashMap 虚引用 :最弱,和没有引用一样 GC (Garbage

pcl总结

冷暖自知 提交于 2020-03-01 20:34:55
基本用法1、pcl功能介绍(解释各个模块和功能)2、开始/基本结构(介绍pcl基本数据结构和相关代码示例) 3、在自己项目中使用PCL(如何使用cmake PCL链接自己的项目) 4、如何编译PCL在POSIX / Unix系统。 5、解释PCL的cmake选项(基本的PCL cmake选项,以及如何调整以适应您的项目) 6、在windows上源代码构建pcl的依赖性 7、在windows上源码编译PCL 8、从MacPorts在Mac OS X上编译PCL及其依赖项和源 9、如何安装点云库在Mac OS X上使用自制程序 10、如何让你的PCL在Eclipse中作为一个项目 11、为PCL生成本地文件 12、矩阵变换点云 高级用法1、添加自定义point类型(解释了模板化点类型在PCL,为什么他们存在,以及如何创建和使用自己的PointT点类型) 2、编写新的PCL类(这个简短的指南作为HowTo和FAQ编写新的PCL类,从头开始,或者通过调整旧的代码) 应用程序 1、覆盖前面的教程可以组合解决一个更高层次的问题,调整之前捕获模型对象的一些新捕获的数据。 2、如何将视点特征直方图(VFH)描述符可以用来识别相似集群的几何学。 3、如何通过网络发送点云数据从一个桌面服务器到客户机运行在移动设备上 4、检测人与RGB-D地平面数据 特性1、PCL3 d功能如何工作(3D功能的评估方法