- 博客(4)
- 收藏
- 关注
原创 lua中table的底层实现
lua中table的底层实现table 在lua中是一个非常常用的数据结构,可以用来存放各种类型的元素,那么就会让人好奇,它这么强大,它是用什么数据结构实现的呢首先,考虑 table = {1, 2, 3, 4, 5, 6, 7, 8} 这样的结构, 为了获得最快的访问速度,它是用数组实现的那么如果执行table[10000] = 10; 莫非要创建10000个元素的数组,没有值的都存为nil,这样的空间利用效率太低无法接受,所有除了数组段之外,table还有一个哈希段,10000这个key会存在哈希
2020-08-19 16:45:06
1497
原创 归并排序、希尔排序、堆排序和基数排序简析
归并排序简述归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。排序步骤申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列;设定两个指针,最初位置分别为两个已经排序序列的起始位置;比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置;重复步骤 3 直到某一指针达到序列尾;将另一序列剩下的所有元素直接复制到合并序列尾。代码实现publi
2020-08-17 11:30:29
252
原创 冒泡排序的时间复杂度和空间复杂度
冒泡排序的时间复杂度和空间复杂度基本步骤1.外循环是遍历每个元素,每次都放置好一个元素;2.内循环是比较相邻的两个元素,把大的元素交换到后面;3.等到第一步中循环好了以后也就说明全部元素排序好了;代码实现void bubbleSort(int array[], int length) { int i, j, tmp; if (1 >= length) return;// 判断参数条件 for (i = length-1; i >
2020-08-11 16:06:14
1144
原创 时间复杂度和空间复杂度简述
时间复杂度和空间复杂度简述时间复杂度常见的时间复杂度ssss常数阶O(1),时间复杂度的计算表示方法空间复杂度计算方法总结时间复杂度时间复杂度是指一个算法执行结束所需要的时间,如果想知道一个算法的运行时间需要上机实测,我们不可能也没有必要对每个算法进行上机测试。同时一个算法的运行时间和代码需要执行的语句数成正比,所以我们可以通过计算代码的执行量来获得算法的时间复杂度。常见的时间复杂度ssss常数阶O(1),对数阶O(log2 n),线性阶O(n),线性对数阶O(n log2 n),平方阶O(n
2020-08-11 11:07:31
396
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人