数据结构与算法
林钟二五
YADX MaQing
展开
-
十大经典排序算法最强总结(内含代码实现)
01 算法分类十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。02算法复杂度 03算法相关概念稳定:如果...原创 2019-11-15 15:30:11 · 204 阅读 · 0 评论 -
数据结构与算法_05【集合与映射】
1.集合(Set)集合:存储不重复元素的容器有序集合中的元素具有顺序性,基于搜索树实现无序集合中的元素没有顺序性,基于哈希表实现顺序性,是指按照元素的大小进行排序,并非指插入的顺序有序性,是指元素的进场顺序和出场顺序一致应用场合: 客户统计 词汇量统计Set集合接口定义public interface Set<E> { public void add(E...原创 2019-10-24 15:20:24 · 150 阅读 · 0 评论 -
数据结构与算法_04【二分搜索树】
1、树结构简介树结构本身是一种天然的组织结构,将数据使用树结构存储后,会大幅高效率。树:元素与元素之间存在一对多的关系 层次关系2、什么是二叉树和链表一样,动态数据结构class Node{E e;Node left; //左孩子Node right; //右孩子}(1)、多叉树(多个子结点)(2)、二叉树具有唯一根节点(3)、二叉树中每个结点最多有两个孩子,没有孩子的结点...原创 2019-04-12 16:19:52 · 102 阅读 · 0 评论 -
数据结构与算法_03【递归】
1.递归概述对递归最恰当的比喻,就是查词典。我们查词典的过程,本身就是递归。想象用一本纯英文词典查单词,要查某一个单词的意思,翻到这个单词时,看解释,发现解释中有一个单词不认识,所以,无法明白这个要查的单词是什么意思;这时,再用这本词典(函数本身)查那个不认识的单词,又发现查的第2个单词的解释中又有一个单词不认识,那么,又再用这本词典查第3个不认识的单词,这样,一个一个查下去,直到解释中...原创 2019-04-12 16:19:35 · 127 阅读 · 0 评论 -
数据结构与算法_02【动态链表】
1.动态链表——线性表的链式存储结构为了表示每个数据元素ai与其直接后继元素ai+1之间的逻辑关系,对数据元素a1来说,除了存储其本身的信息之外,还需存储一个指示其直接后继的信息(即直接后继的存储位置)。我们把存储数据元素信息的域称为数据域,把存储直接后继位置的域称为指针域。指针域中存储的信息称为指针或链。这两部分信息组成数据元素ai的存储映像,称为结点(Node)n个结点链接成一个链表,即...原创 2019-04-12 16:19:17 · 280 阅读 · 0 评论 -
数据结构与算法_01【动态数组】
1.静态数组与动态数组静态数组的特点:数组的长度一旦确定则不可更改数组只能存储同一类型的数据数组中每个存储空间地址是连续且相等的数组提供角标的方式访问元素缺点:长度不可变,数据量大了怎么办?扩容可以解决(创建新数组)地址连续且提供角标,访问很快,但移动元素只能挨个挨个移最重要的,数组只有length这个属性,没有其他的方法!动态数组,主要是解决其缺点3:将数组本身和在其上的相...原创 2019-04-12 16:18:58 · 220 阅读 · 0 评论