树
树与数组链表的比较 数组存储方式的分析 优点:通过下标访问元素,速度快。对于有序数组,还可以使用二分查找提高检索速度 缺点: 如果要检索具体某个值,或者插入值,会整体移动,效率低 链式存储方式的分析 优点:插入,删除效率较高 缺点:检索效率低 树存储方式分析 提高数据存储,读取的效率,比如利用二叉排序树,即保证了数据查询的效率,也保证了数据修改,插入,删除...
树与数组链表的比较 数组存储方式的分析 优点:通过下标访问元素,速度快。对于有序数组,还可以使用二分查找提高检索速度 缺点: 如果要检索具体某个值,或者插入值,会整体移动,效率低 链式存储方式的分析 优点:插入,删除效率较高 缺点:检索效率低 树存储方式分析 提高数据存储,读取的效率,比如利用二叉排序树,即保证了数据查询的效率,也保证了数据修改,插入,删除...
哈希表 根据关键码值(key value)而直接进行访问的数据结构 它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度, 这个映射函数叫做散列函数,存放记录的数组叫做散列表。 常见的哈希表结构 数组+链表 数组+二叉树 哈希表可以同时管理多条链表 package com.learn.hash; import java.util.Scanner; public cla...
排序 1.内部排序 将需要处理的所有数据都加载到内部存储器中进行排序 2.外部排序法 数据量过大,无法全部加载到内存 内部排序 插入排序 直接插入排序 希尔排序 选择排序 简单排序 堆排序 交换排序 冒泡排序 快速排序 ...
递归 -自己调用自己的函数 使用场景 8 皇后,汉诺塔,阶乘,迷宫 快排,归并,二分,分治 使用栈解决的问题->递归代码比较简洁 使用递归需要遵守的问题 执行一个方法时,就创建一个新的受保护的独立空间(栈空间) 方法的局部变量是独立的,不会相互影响 每个递归定义至少必须有一个条件,满足时递归不再进行,而是返回值退出 遵守谁调用,就将结果返回谁,...
栈 先入后出的有序列表 (FILO-First In Last Out) 栈是限制线性表中元素的插入和删除 只能在线性表一段进行的特殊线性表,允许插入和删除的一端称为栈顶,另一端为栈底 最先放入栈中元素在栈底,最后放入的元素在栈顶,删除则是最后放入的先删除,最先放入的最后删除。 栈涉及到的应用场景 子程序调用:在跳往子程序前,会先将下个指令的地址存放到堆栈中,子程...
链表 链表是以节点方式存储 每个节点包含 data,next 域指向下一个节点 链表的各个节点不一定是连续存储 链表根据需求,可以带头结点也可以不带 尾部插入 package com.learn.linkedlist; public class SingleLinkedListDemo { public static void main(Strin...
参考资料:https://space.bilibili.com/302417610?spm_id_from=333.788.b_765f7570696e666f.2 线性结构与非线性结构 线性结构 线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系 线性结构有两种不同的存储结构 顺序存储结构和链式存储结构。顺序存储的线性表称为顺序表,顺序表中的存储元素是连...
shader 简单应用 2d 影子 uv 翻转 v 后,采样目标纹理,舍弃透明部分,非透明部分按设定颜色输出。 Shader "Custom/ImageEffect/Shadow2d" { Properties { _MainTex ("Texture", 2D) = "white" {} _ShadowColor("ShadowCol...
命令模式 UML 图 作用 较容易的实现命令队列 需要的时候可以方便记入日志 接收请求的地方决定是否要接收日志 实现请求的撤销和重做 方便增加新的具体命令类 缺点 大量实例化命令 实现 /// <summary> /// 声明执行操作的接口 /// </summary> abstract public class Co...
卡通风格渲染 渲染轮廓线 方法 基于观察角度和表面法线的轮廓线渲染 ,视角方向和表面法线点乘结果来得到轮廓线。这种方法简单迅速可以在一个 pass 中就得到渲染结果,但时局限性很大,很多模型得不到满意的描边效果 过程式几何轮廓线渲染,使用两个 pass,一个渲染正面,一个渲染背面,并让轮廓可见。优点快速有效,适用于大部分表面平滑模型,不适合类似于正方体这样平整模型 基于图...