摘要:
算法概述 算法分类 十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排 阅读全文
摘要:
穷举法 又称暴力破解法,就是把所有条件,相关情况统统考虑进去,让计算机进行检索,指导得出与之所有条件符合的结果 (但是,暴力破解法对计算机资源耗费严重,如果条件太复杂,运算速度缓慢,为了解决这一问题,我们可以事先把与之不相关的条件进行限制,减少计算机的运算量) 泊松分酒 有3个容器,容量分别为12升 阅读全文
摘要:
图的最短路径 从某顶点出发,沿图的边到达另一顶点所经过的路径中,各边上权值之和最小的一条路径叫做最短路径 图的最短路径有许多重要的应用。 例如:上图中v0-v8有9个点,可以看做不同的地点,现在要规划出v0到其它某个点地点的最短路线规划 构建最短路径中比较常见的一种算法即为dijstra(迪杰斯特拉 阅读全文
摘要:
前言 1.图状结构是我们研究的结构里面最复杂的结构 2.图的相关关系非常复杂,相关概念非常多 但是图又很重要,不管是地图,人物关系等,把每个人或者每个地方看作一个点,其他的点都会与之有上千万的联系。所有就都有及其复杂的网络,不管是路径规划,导航提醒还是警察在断案,其实本质上都是图的应用。 图的定义 阅读全文
摘要:
查找二叉树的定义 一棵二叉搜索树(Binary Sort Tree)是以一棵二叉树来组织的,可以用链表数据结构来表示,其中,每一个结点就是一个对象,一般地,包含数据值和指向孩子(也可能是父母)的指针。如果某个孩子结点不存在,其指针为空(NULL)。 查找树的左右子树各是一棵查找树 若查找树的左子树非 阅读全文
摘要:
一个算法应该具有以下五个重要的特征: 1,有穷性(Finiteness):算法的有穷性是指算法必须能在执行有限个步骤之后终止; 2,确切性(Definiteness):算法的每一步骤必须有确切的定义; 3,输入项(Input):一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法 阅读全文
摘要:
树、森林与二叉树的转换 1、树转换为二叉树 由于二叉树是有序的,为了避免混淆,对于无序树,我们约定树中的每个结点的孩子结点按从左到右的顺序进行编号。 将树转换成二叉树的步骤是: (1)加线。就是在所有兄弟结点之间加一条连线; (2)抹线。就是对树中的每个结点,只保留他与第一个孩子结点之间的连线,删除 阅读全文
摘要:
当你第一次学习编码时,大部分人都是将数组作为主要数据结构来学习。 之后,你将会学习到哈希表。如果你是计算机专业的,你肯定需要选修一门数据结构的课程。上课时,你又会学习到链表,队列和栈等数据结构。这些都被统称为线性的数据结构,因为它们在逻辑上都有起点和终点。 当你开始学习树和图的数据结构时,你会觉得它 阅读全文
摘要:
想要知道什么是哈希表,得先了解哈希函数 哈希函数 地址index=H(key)说白了,hash函数就是根据key计算出应该存储地址的位置,而哈希表是基于哈希函数建立的一种查找表 几种常见的哈希函数(散列函数)构造方法 直接定址法 取关键字或关键字的某个线性函数值为散列地址。 即 H(key) = k 阅读全文
摘要:
HashMap简介 HashMap是开发中使用频率最高的用于映射(键值对 key value)处理的数据结构,我们经常把hashMap数据结构叫做散列链表; ObjectI entry<Key,Value>,entry<Key,Value>] 可以将数据通过键值对形式存起来 特点 HashMap根据 阅读全文