自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (3)
  • 收藏
  • 关注

原创 点乘 叉乘在Unity中的应用

Vector3.Dot 点乘Vector3.Dot(a,b)返回-1 到1,代表两条向量的方向相识度。1 = 方向相同的平行, 0代表 b垂直于a, -1 = 方向相反的平行。常使用方式1、判断位置Vector3.dot(tranform.forward,target.transform - tramform.position)大于0 = target在transform前面,小于0target在transform后面Vector3.dot(tranform.right,target..

2020-09-25 10:07:53 262

原创 多线程 锁

Synchronization属性和ContextBoundObject类(锁整个类)Synchronization属性和ContextBoundObject类,这两个一起使用可以让一个类的实例处于同步环境中。自动同步,CLR确保了同一时刻只有一个线程可以执行继承自ContextBoundObject实例中的代码。锁的作用域——这里是继承自ContextBoundObject实例对象,被称...

2019-06-11 11:35:06 432

原创 堆 栈 堆栈

老是容易混淆,记录记录吧。主要分为内存上 和数据结构上。堆栈=栈堆、栈内存上的差别:栈(stack 操作系统):由操作系统自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。存指针,引用。每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在堆区中每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访...

2019-06-11 10:02:16 1885

原创 Unity 使用Protobuf3.0踩坑日记(.net4.x)

网上查了比较多的资料,看的稀里糊涂。说说.net4.0下如何方便使用Protobuf吧.两种用法:1、网上查到在NuGet(VisualStudio的一个插件平台)上有一个.net移植版的Protobuf。我没采用这一个,具体不知道方便不方便。2、官方的Github下载Protobuf(https://github.com/protocolbuffers/protobuf),我采用这种...

2019-05-14 17:12:51 1929

原创 散列(Hash)的冲突解决方法的性能对比

1、线性和平方以及双散列的查找性能2、分离链接法的查找性能

2019-03-29 15:20:31 800

原创 散列(Hash) 解决hash冲突-链地址法

链表法就是在冲突的时候在该地址的链表上放到最后一位,查找则是在地址上遍历那个链表。

2019-03-29 14:48:35 920

原创 散列(Hash)的冲突解决方法-开放定址法

1、线性探测法通过散列函数求出应放的位置后,如果当前位置有值,则往后顺延。 比如地址等于0时,在0上有值,则尝试去放入1的地址中。依次往后顺延。在表中的成功查找平均长度等于每一个地址上的冲突次数+1的总和除去总数组个数。不在表中的查找平均长度的话则通过散列函数算出地址后,去查看地址上是否是自己,如果不是则往后顺延,一直顺延到当前顺延地址值为空或者自己时方为结束。...

2019-03-29 14:41:44 1500

原创 散列(Hash)

散列的定义:数字关键字的常见散列函数算法:字符串关键字的常见散列函数算法:散列对比其他数据结构的优缺点:1、散列的查找难度跟数据所占空间大小关系不大。冲突处理的好的话O(1)直接就能找到。2、适合字符串的管理(字符串比对麻烦,需要一个字符一个字符比对,但是散列将其变成了数字对比)。3、以空间换时间...

2019-03-22 11:07:12 199

原创 基数排序

基数排序则是通过几轮比较N个整数的基数(进制,图中为10进制,每一位数只有10种可能,按这个来建桶(Bucket))来达到排序的效果。次位优先,先按个位数来排序。主位优先,则是按最大位数来排序...

2019-02-28 11:10:22 155

原创 桶排序

这个比较好理解,通过一个数组链表,去存储不同的成绩数据。 count为成绩数组,0-100,每一个对应索引存储的是一个链表

2019-02-28 10:43:32 86

原创 表排序

适用于结构体,复杂数据。用table存储具体的索引位置。按table从0-n来存储排序后数据的所在位置,例如图中table【0】存储的是3,则取A的第3个位置上的数据a。table【1】存储的是5,则取A的第5个位置上的数据b。这样就避免了排序时,需要移动数据位置。在数据比较复杂较大时,移动需要耗费较多时方便...

2019-02-28 10:33:11 140

原创 快速排序

传说中最快的....跟归并类似,以图中为例, 取65为 pivot, 将其他数据分成两块,然后递归排序左边和右边,然后把三块的结果放到一个数组即完成.选pivot对快速排序来说极其重要,会极大的影响快速排序是真快还是假快......Cutoff为数据大小的一个限制点, 当所剩的待排数据少于Cutoff时,就没必要再用快速排序了,转为插入排序。通过Me...

2019-02-26 17:28:38 136

原创 选择排序

重点看如何优化ScanForMin,可以通过最小堆

2019-02-26 09:44:34 124

原创 归并排序

3个指针,A,B,C       A和B对比,挑选小的一方将其存入指针C中,然后将对比中小的一方的指针和C指针向后指向一位,继续比较。列如 A指向 A1 = 1  B指向B1 = 2  C指向C1,对比中A1比B1小,则C = C1 = 1,然后将指针A改成A2,C改成C2,由此循环下去。 递归的由小到大的归并...

2019-02-22 17:33:30 111

原创 希尔排序

 优化版的插入排序,插入排序中为前后相互比较进行排序,间隔为1。而希尔则是设置了这个间隔,确保一个正确的间隔,将数据分成一个一个小组,进行插入排序对比。如上图中,先间隔5的进行分组的插入排序,列如,第一分组起始为81,插入35    35对比81 互换,插入41,41对比81 ,互换,41对比35 不变。这样则完成了一个分组的对比。然后间隔为5的分组插入排序完毕后,数据只是在分组内相对...

2019-02-22 14:11:53 153

原创 插入排序

从最后面插入一张牌,然后向前进行对比,比如:例如,10 QKA   插入J,则需要与AKQ对比,将AKQ向后移动。

2019-02-20 10:47:51 134

原创 冒泡排序

冒泡排序的好处:用于数据结构为链表时,更为方便。相邻元素对比和互换。 原理: 前后两个元素对比,将大的元素排在下面。通过双重循环达到排序效果。图中flag是为了优化排序,当在双重循环还未循环完毕的时候,如果已经完成了排序,则通过标记flag达到结束的效果...

2019-02-20 10:21:28 128

原创 最小生成树

最小生成树意义在于  在一个连通图中找到一个边的权重和最小并且连通全部点,且是没有回路的. 算法有很多种,不过都可以归为贪心算法. 其中两种比较有名的为:Prim算法,基本思路为从一颗根节点开始让一颗小树慢慢长大     https://blog.youkuaiyun.com/u013245479/article/details/86657295kruskal算法,基本思路为把...

2019-01-26 15:45:10 652

原创 贪心算法 - Kruskal算法

基本思想是 把森林合并成树初始状态下每个顶点都是一棵树,通过不断的把边收进来 两棵树并成了一棵树 

2019-01-26 15:44:27 638 1

原创 贪心算法 - Prim算法

基本思路为从一颗根节点开始让一颗小树慢慢长大 .从根节点开始,每次找一个与当前树有直接边的邻接点,每次找一个最小权重的边,将其边和点收入到树内,树就长大了,然后继续往外长这颗树.反复循环. 以上图的情况来看以V1为起点最小生成树的生成顺序为:V1(V4最近只有1)   -  V4(此时树为V1+V4找与他们最近的边)   -   V2(V3,V2顺序无所谓先后)     -    V3(V...

2019-01-26 15:16:05 1910

转载 前向星

前向星是一种特殊的边集数组,我们把边集数组中的每一条边按照起点从小到大排序,如果起点相同就按照终点从小到大排序,并记录下以某个点为起点的所有边在数组中的起始位置和存储长度,那么前向星就构造好了.用len[i]来记录所有以i为起点的边在数组中的存储长度.用head[i]记录以i为边集在数组中的第一个存储位置.那么对于下图:我们输入边的顺序为:1 22 33 4...

2019-01-26 14:46:38 7293

原创 dijkstra算法

 从未收录的顶点中找一个距离最小的,拿出来后设置成已访问,并遍历这个点的所有邻接点,如果邻接点没有被访问过,且从原点到该点的距离+该点到邻接点的距离小于原点到邻接点的距离话,则证明找到了一条比原先距离更短的路线,进行数据替换,并记录该路线上邻接点的上一个节点,便于路线的记录  ...

2019-01-26 14:45:51 97

原创 数据结构之图

图的常见术语:1、无向图    所有的边无所谓方向的图2、有向图边有可能有方向也有可能没方向,边对图来说重要。3、网络边上有权重的图 (每一条边上有数字,用于表示一些作用)边是顶点对,无向边用(v,x)  双向通道有向边用<v,x>   单向通道,表示从V到X的边 在程序中表现图分为两种,1、邻接矩阵。1+2+3+4+.....+...

2018-11-28 15:14:40 192 1

原创 数据结构之哈夫曼

哈夫曼树的特点: 父节点是两个子节点的和。 利用最小堆来做,每次从最小堆中取出两个分别放到新树的左节点和右节点,然后父节点的值等于左右节点的权值和,再将此父节点插入到最小堆中。 因此哈夫曼树没有度(子节点)为1的节点,所以由上图可知,由于任何非空二叉树,若N0表示叶节点个数,n2是度为2的非叶节点个数,那么两者满足关系 n0 = n2+1,解析如下:  n0+n1+n2-1 = 0...

2018-11-19 18:38:54 812

原创 数据结构之二叉堆

堆的两个特性:1、 结构性: 用数组表示的完全二叉树2、有序性:任一节点的值是其子树所有节点的最大值或最小值(最大堆或者最小堆)最大堆 的插入 :将元素插入到数组的最后一个(lastIndex),通过 lastIndex /2 取得上一层节点的值,进行比较,如果父节点大,则插入到lastindex,如果父节点小,则将父节点换到lastindex,将插入的元素换到父节点位置,如此循环...

2018-11-19 18:25:48 161 1

原创 数据结构之二叉树

基础概念:节点的度:一个节点含有的子树的个数叶节点或终端节点:度为零的节点; 节点的层次:从根开始定义起,根为第1层,根的子节点为第2层 树的高度或深度:树中节点的最大层次;树的类型:1、满二叉树:一棵深度为k,且有2^k-1 (2的k次方减一)个节点称之为满二叉树 (也称完美二叉树,就是节点全有,只有度为2和0的节点)2、完全二叉树: 如上图描述,一一对应,但是可...

2018-11-19 18:15:21 418 1

原创 AssetBundle学习笔记

AssetBundle加载步骤通过AssetBundle加载资源,分为两步,第一步是获取AssetBundle对象,第二步是通过该对象加载需要的资源。而第一步又分为两种方式,下文中将结合常用的API进行详细地描述。一、获取AssetBundle对象的常用API(1)先获取WWW对象,再通过WWW.assetBundle获取AssetBundle对象:public WWW(stri...

2018-11-01 13:44:35 125

UnityTextMeshPr 7000常用字.txt

UnityTextMeshPr 7000常用字.txt

2021-04-21

AVPro Video - Core Edition 2.0.11.unitypackage

自购~亲测可用

2021-04-21

MeshEditor.zip

亲测可用

2019-12-11

空空如也

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

TA关注的人

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