![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构笔记
勇敢前行的小蚂蚁
无论前方怎么样,希望一辈子不把初心忘了
展开
-
算法第一章难点:时间复杂度
总结: 算法时间复杂度就像求函数一样,设x为函数进行的次数,列出方程,求解x。最后把常数,常数系数都删掉,就留下最大的带有n的式子即可。 1.分析时间复杂度的步骤: [ 用常数1来取代运行时间中的所有加法常数。] List item [ 在修改后的运行次数函数中。只保留最高阶项] List item [ 如果高阶项有且不是1,则去除此项的常数系数。] List item 2.几种时间复杂度形式 ...原创 2019-03-24 10:40:40 · 359 阅读 · 0 评论 -
红黑树入门到深入了解
http://dandanlove.com/2018/03/18/red-black-tree/转载 2019-06-05 14:00:15 · 169 阅读 · 0 评论 -
红黑树调整(漫画版)
首页首页沸点话题小册活动写文章登录注册程序员小灰2017年12月06日阅读 23937关注漫画:什么是红黑树?————————————————————————二叉查找树(BST)具备什么特性呢?1.左子树上所有结点的值均小于或等于它的根结点的值。2.右子树上所有结点的值均大于或等于它的根结点的值。3.左、右子树也分别为二叉排序树。下图中这棵树,就是一颗典型的二叉查找树:1.查看根节点9:2.由于...转载 2019-06-05 13:31:46 · 159 阅读 · 0 评论 -
数据结构:BFS及DFS的Java实现
文章目录前言:应用: 前言: BFS(广度优先遍历,Breadth First Search)及DFS(深度优先遍历,Depth First Search)是遍历树或图的两种最常用的方法。本文简单的讲解在面对树或者图的问题时,使用BFS及DFS解答题目时的思路及实现。 1.BFS:一层一层遍历。借助队列。 主要思想: 是从起始点开始,将其邻近的所有顶点都加到一个队列(FIFO)中去,然后标记下这些...原创 2019-05-14 15:54:29 · 506 阅读 · 0 评论 -
跳跃游戏1和2
两种方法贪心算法和动态规划 1.贪心算法代码如下:(我也不太理解,希望谁可以补充的更仔细) public canJump(int[] A){ int end=0; for(int i=0;i<A.length-1;i++){ if(i<end&&i+A[i]>end) end=i+A[i]...原创 2019-05-06 16:30:57 · 149 阅读 · 0 评论 -
红黑树
详情转载 2019-04-18 10:57:39 · 76 阅读 · 0 评论 -
leetcode-01荷兰国旗
给定一个数组arr,和一个数num,请把小于num的数放在数组的 左边,等于num的数放在数组的中间,大于num的数放在数组的 右边。要求额外空间复杂度O(1),时间复杂度O(N)。 注:快排的改进版,快排的时间复杂度是, 空间复杂度: package cn.itcats.test; import org.junit.Test; /** *荷兰国旗问题,使用的是两个指针划分两个区域 l...转载 2019-04-14 20:51:37 · 137 阅读 · 0 评论 -
java实现数据结构:二叉排序树的插入,查找,删除节点
引入树的前提: 在有序数组中,查找一个数据非常快,但是插入和删除非常慢。 在一个链表中,插入和删除一个数据非常快,但是查找一个数据非常慢。 要是有个数据结构可以满足查找和删除,插入都很方便。 用树来解决问题: 节点用类表示。 边(两个节点的关联关系)用引用来表示。 树的分类:二叉树 多路树:(2-3-4树,外部存储) 一.二叉搜索(排序)树(左节点<根<右节点) 1.节点表示: 包含数...原创 2019-04-09 20:53:02 · 1326 阅读 · 1 评论 -
数据结构java实现
一.数据结构的内容 逻辑结构:关联关系,邻里关系。 存储结构:数据元素+关联方式。 运算:对逻辑结构的加工。 1.算法特性: 有穷性:指令序列是有限的 确定性:每条语句的含义明确,无二义性 可行性:每条语句都应在有限的时间内完成 输入:零个或者多个输入 输出:一个或者多个输出 2.程序 程序=数据结构+算法+程序设计方法+编程语言 **程序是算法用某种程序设计语言的具体实现。**程序可以不满足算...原创 2019-04-09 12:12:31 · 1038 阅读 · 0 评论 -
胜者树和败者树以及多路归并的应用(外部排序)。。。。。
胜者树和败者树都是完全二叉树,注意满二叉树和完全二叉树的区别。 每个叶子节点相当于选手,非叶子节点记录的是相当于一场比赛的结果,每一层都是一个比赛。 胜者树的中间节点记录是胜者的标号,而败者树的中间节点记录的是败者的标号。 一.胜者树 只有叶子节点存储数据,其他非叶子节点记录的都是比较之后的胜者。 建立过程:两个叶子节点比较最大/小值放到双亲节点中,以此类推比较到根节点中。 如fig1所示: Fi...原创 2019-04-03 10:33:52 · 968 阅读 · 0 评论 -
算法题:字典序算法
想要整理出每次遇到的算法题。 算法题目: 给定一个正整数,实现一个方法求出离该整数最近且大于自身的换位数。 换位数是,把一个整数的各个数位进行全排列,得到新的数,例如54321和23541. 思路: 1.找到一个和给定数接近的数,就是要将数字的地位记性变化。即找到一个逆序区域 2.如果逆序区域不可以再变换成更大的数,即途中54,再变换也不会大于它了,所以需要把离逆序区域最近的一个数字和逆序区域中...原创 2019-04-08 16:16:58 · 433 阅读 · 0 评论 -
五大常用经典算法。。。。。
请点击 有待更新。。。。。。。转载 2019-04-02 17:32:05 · 461 阅读 · 0 评论 -
算法:内部排序总结。。。。。。
桶排序和基数排序的对比 详情请点击这里 计数排序 快速排序 堆排序 归并排序 希尔排序 选择排序 插入排序 冒泡排序原创 2019-03-31 20:33:12 · 158 阅读 · 0 评论 -
电网--数据结构--第七节动态存储管理
一.概念 二.可利用空间表 系统运行期间所有用户请求分配的存储大小相同。 系统运行期间用户请求分配的存储量有若干中大小的规格。 系统在运行期间分配给用户的内存块的大小不固定,可以随请求而变。 三.分配方法 首次拟合法 最佳拟合发 最差拟合法 四.边界标识法 操作系统中用以进行动态分区分配的一种存储管理方法。系统将所有的空闲块链接在一个双重循环链表结构的可利用空间表中。 可利用空间表结构 ...原创 2019-03-28 13:54:21 · 194 阅读 · 0 评论 -
数字进制转换
一.二进制,八进制,十六进制如何转换成十进制 基本概念: 二进制:1,0序列 八进制:开头0 十六进制:开头0X,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F(代表11,12,13,14,15) 每个位数乘上2/8/16的n次幂相加。 整数部分:从右到左n为0,1,2,3.。。 小数部分:从左到右n为-1,-2,-3,-4.。。。 二.十进制转为二进制,八进制,十六进制 除2/...原创 2019-03-24 17:56:57 · 981 阅读 · 0 评论 -
数据结构第一章基本概念
一。基本概念 数据:数据时输入到计算机中并能够被计算机程序识别和处理的符号的总称。 数据元素:数据的基本单位,一个数据元素可以有多个数据项组成。 数据项:字段,域或属性。组合起来构成数据元素。 数据对象:性质相同的数据元素的集合。例子:大写字母数据对象是集合:{‘A’,‘B’,‘C’,。。。,‘Z’}。 数据结构:相互之间存在一种或多种特定关系的数据元素的集合。 数据结构:...原创 2019-03-24 10:51:58 · 175 阅读 · 0 评论 -
栈的底层原理和应用
关联文章: java数据结构与算法之顺序表与链表设计与实现分析 java数据结构与算法之双链表设计与实现 java数据结构与算法之改良顺序表与双链表类似ArrayList和LinkedList(带Iterator迭代器与fast-fail机制) java数据结构与算法之栈(Stack)设计与实现 java数据结构与算法之队列(Queue)设计与实现 java数据结构与算法之递归思维(让我...转载 2019-05-28 15:07:46 · 2320 阅读 · 0 评论