
算法与数据结构
shuos_yan
最后悔的事不是失败而是我本可以
展开
-
二叉树
二叉树基本概念:根节点root是唯一的一个父节点,每个节点都有两个子节点,左边的节点的值比自己小,右边的比自己大二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第 i 层至多有 2i−1 个结点。深度为 k 的二叉树至多有 2k−1 个结点。对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1。一...原创 2020-05-08 15:59:34 · 728 阅读 · 0 评论 -
算法与数据结构整理
概述算法与数据结构(一)概述数据结构算法与数据结构(二)线性结构-数组算法与数据结构(二)线性结构-栈算法与数据结构(二)线性结构-队列算法与数据结构(二)线性结构-单链表算法与数据结构(二)线性结构-循环链表算法与数据结构(二)线性结构-双链表算法算法与数据结构(三)递归算法与数据结构(三)时间复杂度与空间复杂度算法与数据结构(三)查找算法算法与数据结构(四)排序算法-...原创 2020-05-05 16:45:41 · 170 阅读 · 0 评论 -
算法与数据结构(四) - 排序算法
排序算法原创 2019-12-03 10:54:19 · 125 阅读 · 0 评论 -
算法与数据结构(三) - 查找算法
顺序查找 //顺序查找 public static Integer getOrder(int[] arr,int num){ for (int i = 0;i < arr.length; i ++) { if(arr[i] == num){ return i; } } ...原创 2019-11-11 15:13:10 · 159 阅读 · 0 评论 -
算法与数据结构(三) -算法的时间复杂度和空间复杂度
衡量一个算法的好坏从两个方面衡量:时间复杂度和空间复杂度时间复杂度算法在计算时所占用的时间;在考虑一个算法要计算多长时间的时候,受到计算机等不稳定因素的影响,并不能准确计算出时间,算法执行的语句时非常固定的,所以可以根据这个来计算,也叫做"句频T(n)",语句的频度是指一个算法中的语句执行的次数,记作T(n)每个算法都会满足某个函数一般情况下,算法中的基本操作语句的重复执行次数是问题规模...原创 2019-11-11 15:03:11 · 287 阅读 · 0 评论 -
算法与数据结构(三) - 递归
递归在方法的内部调用该方法本身的编程方式如图所示,四个函数可以看做都是一个方法,只不过为了区分流程画成了四个,数据从第一个入口进入该方法,符合一定条件之后反复调用本身,直到符合条件不需要调用本身时将结果一层一层返回,直到第一层输出fabonacci数列又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的...原创 2019-11-08 14:52:54 · 147 阅读 · 0 评论 -
算法与数据结构(二) - 线性结构之双链表
双链表双链表指的是每一个链表都会记录它的上一个和下一个链表的地址,通过一个链表可以找到它的上一个和下一个链表,因为是循环的,所有没有最后的节点实现:package com.company;/** * @author Shuoshi.Yan * @package:com.company * @className: * @description: * @date 2019-11-...原创 2019-11-08 13:26:43 · 119 阅读 · 0 评论 -
算法与数据结构(二) - 线性结构之循环链表
循环链表循环链表与单链表相似,不过最后一个的地址指向第一个,它是一个闭环的循环代码实现:package com.company;/** * @author Shuoshi.Yan * @package:com.company * @className: * @description: * @data 2019-11-08 09:57 * @version:V1.0 * @...原创 2019-11-08 10:00:47 · 173 阅读 · 0 评论 -
算法与数据结构(二) - 线性结构之单链表
单链表上面的数组/栈/队列都是顺序存储,链表/循环链表/双链表都是链式存储。单链表在存储本身数据的同时也要存储它的下一个数据的地址,就比如说火车的一节一节车厢,车厢本身既要承载乘客也要连接下一节车厢,直到最后车厢单链表的增删改查实现:package com.company;/** * @author Shuoshi.Yan * @package:com.company * @c...原创 2019-11-08 09:33:39 · 153 阅读 · 0 评论 -
算法与数据结构(二) - 线性结构之队列
数组,栈,队列都是顺序存储队列队列遵循新进新出的原则,就像排队办理业务,先排队的先办理实现(他的为空及取数据方法与stack类似):package com.company;/** * @author Shuoshi.Yan * @package:com.company * @className: * @description: * @date 2019-11-07 10:3...原创 2019-11-07 17:32:05 · 116 阅读 · 0 评论 -
算法与数据结构(二) - 线性结构之栈
数组,栈,队列都是顺序存储栈栈就像一个箱子,只能按照顺序进行放置,取得时候只能从最后放入的取,取完上一个才能取下一个,遵循"先进后出"的原则栈的实现:package com.company;/** * @author Shuoshi.Yan * @package:com.company * @className: * @description:栈的实现 * @date 2...原创 2019-11-07 17:31:52 · 98 阅读 · 0 评论 -
算法与数据结构(二) - 线性结构之数组
数组概述:相同数据类型元素的集合;是一中引用类型特点:通过下标/索引访问元素数组的长度是固定不变的,可以通过复制的方法实现数组长度的变化创建数组: //one int[] arr = new int[4]; //two int[] arr1 = new int[]{1,2,3,4}; //three ...原创 2019-11-07 17:31:41 · 97 阅读 · 0 评论 -
算法与数据结构(一)概述
什么是数据结构?数据结构是计算机存储、组织数据的方式。是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。简单来说就是将数据按照特定的结构来保存,也就是数据怎么存数据存储结构:顺序存储结构相邻的数据元素存放的地址也是相邻的,存储密度等于1,比如数组链式存储结构存储时的数据元素存放的地址不一定时相邻的,使用指针实现元素之间的逻辑关系,存储空间是动态分派的,存...原创 2019-11-05 09:36:47 · 310 阅读 · 0 评论