- 博客(5)
- 收藏
- 关注
原创 浅谈LuaGC垃圾回收机制
Lua GC垃圾回收机制Lua 采用了自动内存管理。 这意味着你不用操心新创建的对象需要的内存如何分配出来, 也不用考虑在对象不再被使用后怎样释放它们所占用的内存Lua 运行了一个垃圾收集器来收集所有死对象 (即在 Lua 中不可能再访问到的对象)来完成自动内存管理的工作。 Lua 中所有用到的内存,如:字符串、表、用户数据、函数、线程、 内部结构等,都服从自动管理。基本算法基本的垃圾回收算法被称为"mark-and-sweep"算法。算法本身其实很简单。mark & sweep算法,维基上
2020-08-17 22:17:53
535
转载 浅谈,堆排序,基数排序,归并排序,希尔排序。
堆排序:堆排序是一种利用的堆的性质进行的选择排序;堆实际上是一棵完全二叉树,其任何一非叶节点满足性质:Key[i]<=key[2i+1]&&Key[i]<=key2i+2或者Key[i]>=Key[2i+1]&&key>=key[2i+2] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。堆分为大顶堆和小顶堆,满足Key[i]>=Key[2i+1]&&key>=key[2i+2]称为大顶堆,满足 Key
2020-08-16 22:51:20
514
1
原创 用两个栈实现一个队列(C++实现)
用两个栈实现一个队列(C++实现):首先我们先了解栈和队列的概念:栈(FILO结构或LIFO结构):定义:只能在栈的一端(栈顶)进行插入和删除操作的线性表。逻辑结构:与线性表相同,仍为一对一关系。存储结构:用顺序栈或链栈存储均可,但以顺序栈更常见。运算规则:只能在栈顶运算,且访问结点时依照后进先出(LIFO)或先进后出(FILO)的原则。实现方式:关键是编写入栈和出栈函数,具体实现依顺序栈或链栈的不同而不同。基本操作有入栈、出栈、读栈顶元素值、建栈、判断栈满、栈空等。队列(FIFO结构):
2020-08-12 11:30:18
1260
原创 4中常见排序方式的时间,空间复杂度(冒泡排序,插入排序,选择排序,快速排序)
4中常见排序方式的时间,空间复杂度(冒泡排序,插入排序,选择排序,快速排序)时间复杂度的定义:如果一个问题的规模是n,解这一问题的某一算法所需要的时间为T(n),它是n的某一函数T(n)称为这一算法的“时间复杂性”。概念:在进行时间复杂度的计算时:1,算法完成工作最少需要多少基本操作,即最优时间复杂度2,算法完成工作最多需要多少基本操作,即最坏时间复杂度3,算法完成工作平均需要多少基本操作,即平均时间复杂度1 对于最优时间复杂度,其价值不大,因为它没有提供什么有用信息,其反映的只是最乐...
2020-08-11 16:39:09
7531
2
原创 快速排序
快速排序思路:快速排序就是基于二分查找来进行排序的一种排序方法,二分查找原本是适用于有序的顺序表,但在这里我们利用的是二分查找的原理。就是把数组的第一个元素作为基准,然后定义一个左值(数组第一个元素的下标)和右值(数组最后一个元素的下标),用一个临时变量的变量保存基准的值,然后循环 从右值开始往左找出第一个小于等于基准的数。用找到的数覆盖左值。同样的,左值往右找,找出第一个大于基准的数,覆盖右值。一直反复直到左右值重合,把基准的值存入到重合位置。图片演示:i为左值,j为右值,num是用来保存基准的数右
2020-07-23 11:45:19
380
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人