自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 shader笔记(二)

TANGENT_SPACE_ROTATION : 内置宏,在UnityCG.cginc中被定义, 可求从模型空间到切线空间的变换矩阵rotationUnpackNormal: 内置函数, 求法线方向。float3 WorldSpaceViewDir(float4 v):输入模型空间的顶点位置,返回世界空间中从该点到摄像机的观察方向。float3 ObjSpaceViewDir(float4 v):输入模型空间的顶点位置,返回模型空间从该点到摄像机的的观察方向float3 WorldSpaceL

2020-12-04 19:18:17 135

原创 数据结构——二叉树

目录一 什么是树1.1 定义1.2 存储结构1.2.1 双亲表示法1.2.2 孩子表示法1.2.3 孩子兄弟表示法二 二叉树2.1 定义2.2 特殊二叉树2.2.1 斜树2.2.2 满二叉树2.2.3 完全二叉树一 什么是树1.1 定义树是 n (n ≥ 0) 个结点的有限集。 n = 0 时称为空树。在任意一颗非空树中:有且仅有一个特定称为根的结点;当 n > 1 时, 其余结点可分为 m ( m > 0) 个互不相交的有限集 T1、 T2、······ 、Tm,其中每一个集合本身又是

2020-07-03 23:39:05 215

原创 快速排序

目录一 基本思想二 例子三 复杂度分析一 基本思想通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序的目的。二 例子 class QuickSort { public static void Sort(int[] array) { QSort(array, 0, array.Length - 1); }

2020-07-03 23:38:35 148 1

原创 归并排序

目录一 基本思想二 例子三 复杂度分析一 基本思想1.假设初始序列含有 n 个记录, 则可以看成是 n 个有序的子序列, 每个子序列的长度为1, 然后两两归并,得到[ n / 2] ([x] 表示不少于 x 的 最小整数)个长度为2 或 1 的有序子序列,;再两两归并,······,如此重复, 直至得到一个长度为 n 的有序序列为止, 这种排序方法称为2路归并排序。二 例子 public static void Sort(int[] array, int startIndex, int end

2020-07-03 18:50:18 88

原创 堆排序

目录一 基本思想1.1 什么是堆1.2 堆排序二 例子三 时间复杂度一 基本思想1.1 什么是堆堆是具有下列性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆; 或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。堆的根结点一定是堆中的最大(小)者。1.2 堆排序将排序的序列构成一个大顶堆。此时,整个序列的最大值就是堆顶的根节点。将它移走(其实就是将其与堆数组的末尾元素交换),然后间剩余的 n - 1 个序列重新构成一个堆, 这样就会得到 n 个元素的次小值。

2020-07-02 23:34:18 60

原创 希尔排序

目录一 基本思想二 例子三 时间复杂度一 基本思想希尔排序的实质就是分组插入排序,该方法又称缩小增量排序。希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,再对全体记录做一次插入排序。二 例子 private void ShellSort(int[] array) { int length = array.Length; for (int gap

2020-07-01 21:57:43 74

原创 直接插入排序

目录一 基本思想二 例子三 时间复杂度一 基本思想直接插入排序的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增加 1 的有序表。二 例子 private int[] array = new int[10] {4,5,6,3,2,1,7,8,9,0}; private void InsertSort() { for (int i = 1; i < array.Length; i++) {

2020-07-01 18:15:02 81

原创 简单选择排序

目录一 基本思想二 例子三 时间复杂度一 基本思想简单选择排序就是通过 n-i-1 次关键字间的比较, 从 n-i 个记录中选出关键字最小的记录, 并和第 i 个记录交换。二 例子 private int[] array = new int[10] {4,5,6,3,2,1,7,8,9,0}; private void SelectSort() { int min = 0; for (int i = 0; i <

2020-07-01 16:51:04 189

原创 冒泡排序

一 基本思想两两比较相邻的元素, 如果反序则交换, 知道没有反序的元素为止。

2020-07-01 15:58:04 59

原创 数据结构——栈与队列

目录一 栈1.1 定义1.2 顺序栈1.3 链式栈1.4 时间复杂度1.5 顺序栈和链式栈的区别二 队列2.1 定义2.2 顺序队列2.3 循环队列2.3 链式队列2.4 时间复杂度2.5 循环队列和链式队列的区别一 栈1.1 定义是指仅限在表尾进行插入删除操作的线性表。 特点是先进后出。1.2 顺序栈数组的简化, 限制了插入删除只能在表尾进行。1.3 链式栈1.在单链表的基础上加一层限制, 只能在表尾做插入插入删除的操作。1.4 时间复杂度1.顺序栈和链式栈的出栈(pop)和进栈

2020-06-29 19:15:23 639

原创 数据结构——线性表

目录一 顺序存储结构1.1 定义1.2 组数1.3 时间复杂度1.4 优缺点1.4.1 优点1.4.2 缺点二 链式存储结构2.1 定义2.2 链表2.2.1 结点(Node)2.2.2 单链表2.2.3 双链表2.2.4 循环链表2.3 时间复杂度2.4 优缺点2.4.1 优点2.4.2 缺点一 顺序存储结构1.1 定义指的是用一段地址连续的存储单元依次存储线性表的数据元素的一种数据结构。1.2 组数组数是一种顺序存储结构。1.3 时间复杂度读取的时间复杂度是O(1)。插入、删除

2020-06-29 18:26:32 78

原创 c#设计模式——访问者模式

目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点一 UML类图二 例子 class Program { static void Main(string[] args) { ObjectStructure.Add(new ElementA()); ObjectStructure.Add(new ElementB()); ObjectStructure.VisitorElem

2020-06-27 21:51:04 94

原创 c#设计模式——解释器模式

目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点四 参考资料一 UML类图PS:文法是用于描述语言的语法结构的形式规则。没有规矩不成方圆,例如,有些人认为完美爱情的准则是“相互吸引、感情专一、任何一方都没有恋爱经历”,虽然最后一条准则较苛刻,但任何事情都要有规则,语言也一样,不管它是机器语言还是自然语言,都有它自己的文法规则。例如,中文中的“句子”的文法如下。〈句子〉::=〈主语〉〈谓语〉〈宾语〉〈主语〉::=〈代词〉|〈名词〉〈谓语〉::=〈动词〉〈宾语〉::=〈代词〉|〈名词〉

2020-06-27 20:58:37 148

原创 c#设计模式——享元模式

目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点一 UML类图二 例子 class Program { static void Main(string[] args) { Flyweight flyweight = FlyweightFactory.GetFlyweight("qq"); flyweight.Operation(); UnshareConcreteFlyweight un

2020-06-27 18:35:30 140

原创 c#设计模式——中介者模式

目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点一 UML类图二 例子 class Program { static void Main(string[] args) { MediatorA mediator = new MediatorA(); Colleague colleagueA = new ColleagueA(mediator); Colleague coll

2020-06-27 00:06:11 63

原创 c#设计模式——职责链模式

目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点一 UML类图二 例子 class Program { static void Main(string[] args) { Handler handlerA = new HandlerA(); Handler handlerB = new HandlerB(); Handler handlerC = new HandlerC

2020-06-26 23:26:35 145

原创 c#设计模式——命令模式

目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点一 UML类图二 例子 class Program { static void Main(string[] args) { Receiver receiver = new Receiver(); ICommand command = new CommandA(receiver); Invoker invoker = new I

2020-06-26 17:59:52 114

原创 c#设计模式——桥接模式

目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点一 UML类图二 例子 class Program { static void Main(string[] args) { Abstraction abstraction = new AbstractionA(); abstraction.SetImplementor(new ImplementorA()); abstrac

2020-06-26 17:24:22 94

原创 c#设计模式——单例模式

目录一 UML类图二 例子2.1 单线程2.2 多线程2.2.1 懒汉式单例类2.2.2 饿汉式单例类一 UML类图二 例子2.1 单线程 public class Singleton { private static Singleton instance; private Singleton() { } public static Singleton GetI

2020-06-25 20:52:26 89

原创 c#设计模式——迭代器模式

目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点四 .Net中的迭代器实现4.1 IEumerator4.2 IEumerable一 UML类图二 例子 class Program { static void Main(string[] args) { ConcreteAggregate aggregate = new ConcreteAggregate(); aggregate[0] = 1;

2020-06-25 20:27:44 176

原创 c#设计模式——六大原则

单一职责原则解释就一个类而言,应该仅有一个引起它变化的原因。优点代码解耦, 易维护,易扩展,易复用,灵活性好。开放封闭原则解释是说软件实体(类、模板、函数等等)应该可以扩展,但是不可修改。对于扩展是开放的,对更改是封闭的。优点易维护,易扩展,易复用,灵活性好。依赖倒转原则解释1.高层模块不应该依赖低层莫鲁哀,两个都应该依赖抽象。2.抽象不应该依赖细节,细节应该依赖抽象。优点易维护,易扩展,易复用,灵活性好。里氏代换原则解释子类型必须能够替换掉他们的父类型。...

2020-06-25 19:01:00 449

原创 c#设计模式——组合模式

目录一 UML类图二 例子一 UML类图二 例子

2020-06-25 18:49:38 139

原创 c#设计模式——备忘录模式

目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点一 UML类图二 例子 static void Main(string[] args) { Originator originator = new Originator(); Caretaker caretaker = new Caretaker(); caretaker.memento = originator.CreateMemento

2020-06-25 18:01:52 183

原创 c#设计模式——适配器模式

目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点一 UML类图二 例子 class Program { static void Main(string[] args) { Target target = new Adapter(); target.Request(); } } public interface Target { void

2020-06-25 12:19:04 238

原创 c#设计模式——建造者模式

目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点四 与抽象工厂的区别一 UML类图二 例子 public interface IBuilder { void BuildPart(); Product GetProduct(); } public class Director { public Product ProductConstruct(IBuilder builder) {

2020-06-25 00:42:39 109

原创 c#设计模式——状态模式

目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点一 UML类图二 例子 public interface IState { void Handle(Context context); } public class Context { private IState state; public void SetState(IState state) { this.s

2020-06-24 23:04:53 148

原创 c#设计模式——抽象工厂模式

目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点一 UML类图二 例子 public interface IFactory { AbstractProductA CreateProductA(); AbstractProductB CreateProductB(); } public abstract class AbstractProductA { } public abstract class A

2020-06-24 22:00:55 132

原创 c#设计模式——观察者模式

目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点事件委托实现一 UML类图二 例子 public class Subject { private List<IObserver> observers = new List<IObserver>(); public void Add(IObserver observer) { observers.Add(observer);

2020-06-24 21:19:43 103

原创 c#设计模式——外观模式

目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点一 UML类图二 例子 public class Facade { private SubSysytemOne subSysytemOne; private SubSysytemTwo subSysytemTwo; private SubSysytemThree subSysytemThree; public Facade() {

2020-06-23 18:06:36 90

原创 c#设计模式——模板方法模式

目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点一 UML类图二 例子 public abstract class ITemplateMethod { public abstract void Operation1(); public abstract void Operation2(); public void TemplateMethod() { Operation1();

2020-06-23 16:54:07 269

原创 c#设计模式——原型模式

目录一 UML类图二 例子三 浅复制和深复制3.1 浅复制3.2 深复制四 优缺点4.1 优点4.2 缺点一 UML类图二 例子 public interface IPrototype { IPrototype Clone(); } public class PrototypeA : IPrototype { public IPrototype Clone() { return t

2020-06-23 10:50:17 161

原创 c#设计模式——工厂方法模式

UML类图例子 public interface IFactory { IProduct GetProduct(); } public class FactoryA : IFactory { public IProduct GetProduct() { return new ProductA(); } } public class FactoryB : IFactory {

2020-06-23 09:04:02 112

原创 c#设计模式——代理模式

UML类图例子 public interface Subject { void Request(); } public class RealSubject : Subject { public void Request() { //todo; } } public class Proxy : Subject { private Rea

2020-06-22 21:34:31 91

原创 c#设计模式——装饰模式

UML类图例子 public interface Component { void Operation(); } public class ConcreteComponent : Component { public void Operation() { //todo } } public abstract class Decorator : Component

2020-06-22 21:14:44 118

原创 c#设计模式——策略模式

UML类图例子public abstract class

2020-06-22 17:38:37 158

原创 c#设计模式——简单工厂模式

UML类图例子// An highlighted blockpublic class BaseOperation{ public virtual void Task(){}}public class OperationA:BaseOperation{ public override void Task(){ //todo }}public class OperationB:BaseOperation{ public override void Task(){ //todo

2020-06-22 16:01:43 86

原创 unity shader学习笔记

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2020-06-20 10:08:04 299

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除