记录一下,用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评论
STL的容器map为我们处理有序key-value形式数据提供了非常大的便利,由于内部红黑树结构的存储,查找的时间复杂度为O(log2N)。一般而言,使用map的时候直接采取map<typename A, typename B>的形式即可,map的内部实现默认使用A类型变量的升序来排序map的值。但是有时我们需要对map的值做特殊的排序(不经其他容器的辅助),这就需要在定义map变量时
在使用 Lua 进行实际开发的过程中,格式化字符串的函数 string.format() 的使用频率是非常高的,这里整理一下关于这个函数的使用。参数解析string.format(formatstring, ...)formatstring 为格式化串(必须是一个字符串),其中可能包含多个转义码(例如最为常用的 %d %s 等)。... 为数量不定的参数列表,以逗号分隔,与格式
Map<String, Integer> map = new TreeMap<String, Integer>(); map.put("j2se", 20); map.put("j2ee", 10); map.put("j2me", 30); List<Map.Entry<String, Integer>> infoIds = new A
转载 2023-06-12 18:04:28
179阅读
java中经常排序,但是自己对Map排序方法一直不是很清楚,特此记录。 Map作为键值对的存储工具,基本的概念介绍网上都有,自己参考如下博客:简单介绍Map 在讲解Map排序之前,我们先来稍微了解下mapmap是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。其中这四者的区别如下(简单介绍)一般使用HashMap和Tre
map 排序 map.entrySet().stream().sorted((o1, o2) -> { return o2.getValue() - o1.getValue(); }).collect(Collectors.toList()).forEach(ele->map.put(ele.get ...
转载 2021-10-22 17:32:00
144阅读
2评论
Map集合的按时间排序方法一、简单介绍Map 在讲解Map排序之前,我们先来稍微了解下mapmap是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。其中这四者的区别如下(简单介绍): HashMap:我们最常用的Map,它根据key的HashCode 值来存储数据,根据key可以直接获取它的Value,同时它具有很快的访问
一、Lua table(表)table 是 Lua 的一种数据结构,能容纳任何数据类型,如:数字、字典等。Lua table 使用关联型数组,你可以用任意类型的值来作数组的索引,但这个值不能是 nil。Lua table 是不固定大小的,你可以根据自己需要进行扩容。Lua也是通过table来解决模块(module)、包(package)和对象(Object)的。例如string.format表示使
转载 6月前
70阅读
1、Parquet存储格式 1.1、Parquet介绍Apache Parquet 是由 Twitter 和 Cloudera 最先发起并合作开发的列存储项目。Parquet 的设计与计算框架、数据模型以及编程语言无关,可以与任意项目集成,因此应用广泛。目前已经是 Hadoop 大数据生态圈列式存储的事实标准。1.2、原理有这么三行数据在面向行的存储中,每列的数据依次
public class HashMapTest { public static void main(Stap = new HashMap<String, String>(); map.put("c", "ccccc"); map.put...
原创 2022-08-04 11:23:10
22阅读
private String makeParams(Map params) {        Map data = new HashMap();String pre
i++
原创 2022-11-04 17:33:12
77阅读
1.根据key键给map排序public static void main(String[] args) {Map<Integer,String> map = new TreeMap<>(new Comparator<Integer>(){@Overridepublic int compare(Integero1, Integer o2) {return o1-...
原创 2023-01-10 11:08:49
198阅读
昨天学习了一下七大排序中的两个——冒泡排序和快速排序,遂用Lua简单的实现了一下。冒泡排序:--[[-- - orderByBubbling: 冒泡排序 - @param: t, - @return: list - table ]] function table.orderByBubbling(t) for i = 1, #t do for j = #t,
冒泡排序。。大家都知道是个啥 就不啰嗦了。上马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 中的函数是一阶类型值(first-class value),定义函数就象创建普通类型值一样(只不过函数类型值的数据主要是一条条指令而已),所以在函数体中仍然可以定义函数。假设函数f2定义在函数f1中,那么就称f2为f1的内嵌(inner)函数,f1为f2的外包(enclosing)函数,外包和内嵌都具有传递性,即f2的内嵌必然是f1 的内嵌,而f1的外包也一定是f2的外包。内嵌函数可以访问
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阅读
1.元表、元操作 1.1算术元操作 Metatables允许我们改变table的行为,例如,使用Metatables我们可以定义Lua如何计算两个table的相加操作a+b。当Lua试图对两个表进行相加时,他会检查两个表是否有一个表有Metatable,并且检查Metatable是否有__add域。如果找到则调用这个__add函数(所谓的Metamethod)去计算结果。 Lua中的每一个表都有
  • 1
  • 2
  • 3
  • 4
  • 5