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