自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 lua中的Table

简介:Lua中,Table是很重要的一个部分,它可以表示很多的数据结构,可以是Array,可以是Map,可以根据自己的需要实现栈,队列等等,使用起来方便分析:Table分为2部分,分别是数组Array和Hash部分。数组部分主要是存储下标从1开始的连续不为空的节点内容,如果是中间断开部分会存到hash部分。Hash部分是存储各种类型的离散数据对于一个Table初始化的时候,如果是空表,即Array和Hash部分长度都为0。这里主要讲哈希的部分然后根据哈希表的原理从后.

2020-08-18 23:41:01 479

原创 Lua的GC机制

GC分析:lua中GC采用的是标记-清除法,即一次GC分为2步1:从根结点遍历GC对象,如果可达则标记2:遍历所有的GC对象,清除所有未被标记的对象二色标记法:lua5.1之前采用的GC算法,缺点是GC的时候不能被打断,所以会严重卡住主线程三色标记法:lua5.1后采用三色标记法白色:在gc开始阶段,所有的对象都为白色,当遍历了一次后,任为白色,则删除白色灰色:灰色应用在分布遍历阶段,如果有对象为灰色,则遍历就不会停止黑色:被引用的对象,设为黑色,不会被删除,

2020-08-17 22:41:40 1699

原创 基数排序

简介:基数排序属于分配式排序,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用基本思路:将数字按位数分割成不同的数字,然后按大小进行桶排序(从低位开始向高位排序,一直到最大位数,)步骤图:(图片来源:https://www.runoob.com/w3cnote/radix-sort.html)代码:int GetM(int data[], int n) { int Maxdata = data[0]; for (int i =

2020-08-17 00:08:16 119

原创 希尔排序

简介:希尔排序又称为缩小增量排序,是基于插入排序上进行的优化后的排序,是一种非稳定排序希尔排序是把序列按一定间隔分组,对每组使用直接插入排序;随着间隔减小,一直到1,使得整个序列有序。步骤:1:先用一个增量将待排序的数组分为若干个子数组,每个子数组中的下标间距就是增量值2:然后对每个子数组进行插入排序3:再用第二个增量进行相同操作(与插入排序类似,多了个增量)注意事项:1:增量元素最好互质,如果不互质,可能会导致小的增量起不到效果2:最后一个增量必须为1代码:..

2020-08-16 13:42:06 201

原创 A*算法

简介: A*算法是一个种静态路网中求解最短路径最有效的直接搜索方法,是一种启发式搜索地图:大致思路:首先要有一个开启列表和一个关闭列表开启列表中用来存放所有可能走的点(可以使用优先队列)关闭列表中存放所有走过的点1:先将起点加入开启列表中2:在开启列表中找到F值最低的点(F值的计算下面讲)3:将该点加入到关闭列表中,并从开始列表中移除4:遍历该点的周围8格{ 如果不能走,或者在关闭列表中,则continue 否则判断是否在...

2020-08-15 16:22:11 335

原创 用两个栈实现一个队列

栈的特点:先进后出(FILO)队列的特点:先进先出(FIFO)用两个栈实现一个队列基本思路:2个栈,Save和Temp,Save用来存储数据,Temp用来临时存储void push(int n); //在队列末尾加入一个元素直接在Save的队头push一个数进去int back(); //返回最后一个元素同样直接返回Save.top(),返回Save的栈顶,既为队尾bool empty(); //判断队列是否为空因为数据全是存储在Save中,所以队列的数据状

2020-08-11 23:32:23 123

原创 排序-快速排序以及其复杂度的计算

基本思路:在一个数组中,找一个数为基准数,将这个数中所有比基准数大的数放在该数的右边,比基准数小的数放在该数的左边。例如"6 1 2 7 9 3 4 5 10 8"这个数组以6作为基准数,将比6小的数放在6的组左边,比6大的数放在6的右边得到:3 1 2 5 4 6 9 7 10 8可以看出6的左边的数都比6小,而右边的数都比6大,此时6已经归位具体步骤为:先找一个基准数(一般为第一个),然后从右边开始向左找,找到第一个小于基准值的数,然后从左开始找,找到第一个小于基准值的数,然后进行交换

2020-08-11 00:21:14 6352

空空如也

空空如也

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

TA关注的人

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