记录一下,用lua实现的快排,以及一些注意的地方。 交换函数:function Swap(tab, i, j) local temp = tab[i]; tab[i] = tab[j]; tab[j] = temp; end一、左右指针法:-- 左右指针法 -- 最后一个数为枢轴 function PartSort(tab, left, right) l
顺序插入排序:--- 顺序插入排序 ---@param arr 需要排序的表 local InsertSort = function(arr) for i = 2, #arr do local j = i - 1 local tmp = arr[i] --采用顺序查找法查找插入位置 if arr[i] < arr[j] then while j >= 1
guild = {}table.insert(guild, {name = "Cladhaire",class = "Rogue",level = 70,})table.insert(guild, {name = "Sagart",class = "Pries...
转载 2012-12-26 15:21:00
195阅读
2评论
1、Parquet存储格式 1.1、Parquet介绍Apache Parquet 是由 Twitter 和 Cloudera 最先发起并合作开发的列存储项目。Parquet 的设计与计算框架、数据模型以及编程语言无关,可以与任意项目集成,因此应用广泛。目前已经是 Hadoop 大数据生态圈列式存储的事实标准。1.2、原理有这么三行数据在面向行的存储中,每列的数据依次
t = { [1] = 1, [344222] = 12, [223232] = 20} for k, v in pairs(t) do--注意这个输出顺序是没有规律的!!! print(k, v) end local keys = {} for k, _ in pairs(t) do table.insert(keys, k) end function cmp(v1, v...
转载 2017-01-18 10:55:00
170阅读
2评论
数组中已经存在两个可以直接用来排序的方法:reveres()和sort()。reveres()方法会反转数组项的顺序。在默认情况下,sort()方法按升序排列数组项——即最小的值位于最前面,最大的值排在最后面。为了实现排序,sort()方法会调用每个数组项的toString()转型方法,然后比较得到的字符串,以确定如何排序。即使数组中的每一项都是数值,sort()方法比较的也是字符串,如下所示。v
转载 1月前
4阅读
冒泡排序。。大家都知道是个啥 就不啰嗦了。上马local a={5,4,3,2}local ifunction B() for i=1,5,1 do for j=1,4-i,1 do if(a[j]>a[j+1])then local c=a[j]; a[j]=a[j+1] a[j+1]=c end end endendB();
原创 2023-03-16 14:12:45
59阅读
昨天学习了一下七大排序中的两个——冒泡排序和快速排序,遂用Lua简单的实现了一下。冒泡排序:--[[-- - orderByBubbling: 冒泡排序 - @param: t, - @return: list - table ]] function table.orderByBubbling(t) for i = 1, #t do for j = #t,
1.元表、元操作 1.1算术元操作 Metatables允许我们改变table的行为,例如,使用Metatables我们可以定义Lua如何计算两个table的相加操作a+b。当Lua试图对两个表进行相加时,他会检查两个表是否有一个表有Metatable,并且检查Metatable是否有__add域。如果找到则调用这个__add函数(所谓的Metamethod)去计算结果。 Lua中的每一个表都有
Metatable和表在使用lua的时候,lua 的表是最经常用到的,虽然表已经提供给我们非常多的操作,包括变量,函数等,Metatable的引入可以改变相应的表行为,使得表更加的灵活。有时我们需要对表中新创建的元素进行跟踪,使用Metatable可方便的做到这一点。带着这个问题,看看是如何使用Metatable 做到这一点的。__index和**__newindex**如下先创建一个带Metat
      今天介绍快速排序,这也是在实际中最常用的一种排序算法,速度快,效率高。就像名字一样,快速排序是最优秀的一种排序算法。思想快速排序采用的思想是分治思想。快速排序是找出一个元素(理论上可以随便找一个)作为基准(pivot),然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基准右边的元素值 都不小于基准值,如此作为基准的元素调整到排序后的正确位置。递归
一、安装步骤:参考文章:首先MACOS安装apisix,需要用源码安装,具体步骤可以参考官网的文章/还有其他文章https://apisix.apache.org/docs/apisix/building-apisix/安装及部署说明:先执行make deps安装lua的相关依赖执行make install将运行文件拷贝到/usr/local中apisix start执行过程,首先先通过luaji
从本篇博客开始研究一下Lua,现在Lua真得是很火,因为Cocos2d-x写游戏的时候会用到,所以就拿过来学学吧,先从基础的语法开始,然后慢慢的深入。本人也是刚刚学习,希望和学习Lua的大家交流,博客权当笔记,有错误之处还请赐教。当然首先是搭建开发环境了,我的学习背景是Cocos2d-x,所以下载了最新发布的Cocos Code IDE,我们可以在Cocos Code IDE上边新建工程,然后写L
今天的题目是函数,先看一下匿名函数。Perl里是这样的 $f = sub{ return $_[0]+$_[1]+$_[2]; }; print &$f(1,2,3)."\n"; lua里是这样的 f = function(x,y,z) return x+y+z end print (f(1,2,3)) python里使用了lambda概念,实现是这样的,也可以通过全局函数apply调用任
概述: 案例:Cesium打包流程,相关技术点和大概流程原理:代码优化的意义:压缩 优化 混淆优化:如何完善Cesium打包流程关键字:Cesium gulp uglifyjs 字数:2330 | 阅读时间:7min+ 1 Cesium打包流程        如果没有记错,Cesium从2016年初对代码构建工具做了一次调整,从g
排序算法原理及实现插入排序原理:实现:希尔排序原理:实现:选择排序原理:实现:冒泡排序原理:实现:堆排序原理:实现:快速排序归并排序排序算法的性能分析 排序,使一串记录,基于比较,按照递增或者递减的排列起来。 通常意义上的排序,都是原地排序(in place sort)插入排序原理:我们将整个区间看做无序区间和有序区间,每次选择无序区间的第一个元素,然后在有序区间的合适位置插入。实现:publ
1031.字母排序 题目描述:有若干个字母,已知某些字母之间的前后关系,求它们的排列顺序。 每组数据第一行两个整数N(2 <= N <= 26)、M,为字母的个数及已知条件的个数,字母为从A开始的N个字母。N、M均为0表示输入结束。 之后M行,为一个条件,格式为:字母<字母,或字母>字母,如A<B,代表A在B的前面,A>B代表A在B的后面。对于每组输入数据,输出
排序的稳定性2019-11-10  09:42:11  by冲冲 1、稳定性① 定义:能保证两个相等的数,经过排序之后,其在序列的前后位置顺序不变。(A1=A2,排序前A1在A2前面,排序后A1还在A2前面)② 意义:稳定性本质是维持具有相同属性的数据的插入顺序,如果后面需要使用该插入顺序排序,则稳定性排序可以避免这次排序。比如,公司想根据“能力”和“资历”
方法是先把中文转换成拼音然后根据拼音排序。关于中文转拼音请看上一篇,中文转拼音,此处的PinYin变量就是这篇文章中的的拼音库。用户给定的数据会有数字英文和汉字。不管是字符排序还是真个字符串的排序都是采用补全数字的方法,这里称呼得到的位置前后的叫权重吧,权重小的在前(就是数字小的),权重大的在后(就是数字大的)首先计算所有的可能。首先是每个字符的排序,包括 0-9,a-z,A-Z,和汉字,无法识别
转载 3月前
90阅读
排序是数据处理中的经常性工作,Excel排序有序数计算(类似成绩统计中的名次)和数据重排两类。本文以几个车间的产值和名称为例,介绍Excel 2000/XP的数据排序方法。   一、数值排序   1、RANK函数   RANK函数是Excel计算序数的主要工具,它的语法为:RANK(number,ref,order),其中
  • 1
  • 2
  • 3
  • 4
  • 5