
算法
皮卡丘太肥,餐餐吃吃吃
不重复创造轮子,不代表可以不去深入了解这些轮子
展开
-
数据结构学习之二叉树
二叉树的基本概念二叉树的性质(特性)二叉树的节点表示以及树的创建深度优先遍历广度优先遍历(层次遍历)二叉树的基本概念二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)二叉树的性质(特性)性质1: 在二叉树的第i层上至多有2^(i-1)个结点(i>0)性质2: 深度为k的二叉树至多有2^k ...原创 2019-08-31 23:13:31 · 287 阅读 · 0 评论 -
数据结构学习-队列
定义队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出的(First In First Out)的线性表,简称FIFO。允许插入的一端为队尾,允许删除的一端为队头。队列不允许在中间部位进行操作!假设队列是q=(a1,a2,……,an),那么a1就是队头元素,而an是队尾元素。这样我们就可以删除时,总是从a1开始,而插入时,总是在队列最后。这也比较符...原创 2019-08-31 17:41:01 · 288 阅读 · 0 评论 -
数据结构学习-栈
定义:栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认的访问顺序。由于栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last ...原创 2019-08-31 17:37:14 · 124 阅读 · 0 评论 -
链表学习
明白目前的学习定位https://blog.youkuaiyun.com/u011623980/article/details/100169656为什么需要链表顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充时又需要进行数据的搬迁,所以使用起来并不是很灵活。链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。链表的定义及其分类链表(Linked list)是一种常见的基础...原创 2019-08-31 10:39:15 · 116 阅读 · 0 评论 -
数据结构--树的学习
https://blog.youkuaiyun.com/u011623980/article/details/100169656花一分钟定位学习位置树的特点树的术语树的种类树的存储与表示常见的一些树的应用场景树的概念树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的...原创 2019-08-31 10:38:45 · 187 阅读 · 0 评论 -
数据结构和算法学习目标
Q:怎么理解数据结构?研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这些运算后所得到的新结构仍然是原来的结构类型。按照逻辑结构分类线性结构:线性表、栈、队列非线性结构:树、图按照存储结构分为顺序结构、链式结构、索引结构、哈希结构https://blog.youkuaiyun.com/qq_38646470/column/info/20027https...原创 2019-08-31 10:11:03 · 529 阅读 · 0 评论 -
花五分钟口语化过下几种排序思路
冒泡排序时间复杂度是O(n^2),一开始交换的区间是0~n-1,也就是整个数据的整体,然后第一个数与第二个数进行比较,哪个大哪个就放在后面,然后第二个数和第三个数比较,**这样依次交换过去,最大的数最终会放在数组最后的一个位置。然后把范围从0~n-1变为0~n-2,这样一来第二个数在交换过后,会放在整个数据倒数第二个位置依次进行交换过程中,把范围从0~n-1 到 范围只剩下一个数的时候,...原创 2019-08-25 00:27:06 · 128 阅读 · 0 评论 -
时间复杂度
时间复杂度的几条基本计算规则常见时间复杂度时间复杂度的几条基本计算规则基本操作,即只有常数项,认为其时间复杂度为O(1)顺序结构,时间复杂度按加法进行计算循环结构,时间复杂度按乘法进行计算分支结构,时间复杂度取最大值判断一个算法的效率时,往往只需要关注操作数量的最高次项,其它次要项和常数项可以忽略在没有特殊说明时,我们所分析的算法的时间复杂度都是指最坏时间复杂度常见时间复杂度...原创 2019-08-24 23:22:22 · 121 阅读 · 0 评论 -
手写的数组
首先数组要明白为啥有了集合的存在 还要数组的存在。数组可以放基本基础类型,而List存放的是对象设计的内容1定义存的的类型,容量,2及对他的获取和设置3及其对应的增删改查。编写亮点1 引入泛型来替代具体的类型2 编写构造函数,除了有个复杂的,还应该有个默认的3public class Array<E> { private E[] data; ...原创 2019-08-24 23:02:39 · 186 阅读 · 0 评论