lua实现函数 功能是对输入的字符串数组排序。比如:输入"ab","bc","asd","qwe",输出为"b

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lua实现函数 功能是对输入的字符串数组排序。比如:输入"ab","bc","asd","qwe",输出为"b相关的知识,希望对你有一定的参考价值。

输出为"bc","ab","qwe","asd",而且输入是自己键入的,不是就这样而已,可以改的

t="ab","bc","asd","qwe"
table.sort(t)
for i,v in pairs(t) do
print(v)
end追问

数组字符串是键入的,不只是这四个字符串

追答

看来你学习很不用工啊 是不是键入的跟排序算法是没有关系的
t =
while true do
local str = io.read()
if str ~= "#" then
table.insert(t,str)
else
break
end
end
table.sort(t)
for i,v in pairs(t) do
print(v)
end
任意输入字符串,输入# 表示结束 如果OK的话就采纳吧

参考技术A

LUA对Map进行排序

Lua中最常见的数据结构就是Table, 用Table表示Map很容易, 但早期Lua没有提供一个针对Map数据结构的排序方法,下面用Moonscript实现了一个Map型数据结构排序函数方法。


比如,我们在统计某些元素的个数时,[["a", 100], ["b",10],["c",1]]这种数据结构,元素的个数都比较少的,简单的排序算法都可以解决,数据变大时,我们可能会采用更复杂的算法去实现。


其实实现的原理比较简单,就是用两个Table,分别存储Map的Key与Value,用比较简单的冒泡排序或是选择排序对Key的Table结构进行排序,在排序的过程中移动Table中Key的存储位置的同时,也安对应的下标移动Value数组的位置,这样当Key排序好的同时,Value也被排序好了。


下面的例子没有直接使用Lua实现,用了Moonscript实现了这个简单的过程,然后通过Moonc解释程序把Moonscript翻译成Lua, Moonscript天然支持类,并且用Moonscript实现的函数相对也比Lua简洁一些。



降序排序:


升序和降序的方法比较简单,直接将与max比较的“>”大于号,改成小于号,或是想反。


升序排序:


以上是关于lua实现函数 功能是对输入的字符串数组排序。比如:输入"ab","bc","asd","qwe",输出为"b的主要内容,如果未能解决你的问题,请参考以下文章

LUA对Map进行排序

Lua学习笔记3. 函数可变参数和运算符转义字符串数组

lua面向对象是怎么实现的

qsort函数实现对任意数据的排序

PHP array_multisort() 函数 实现数组排序

Lua中调用C函数(lua-5.2.3)