北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 4541|回复: 7

求解一个lua基础的排序问题,有懂得请不吝赐教下。这里拜谢在先!

[复制链接]
发表于 2011-11-22 11:19:47 | 显示全部楼层 |阅读模式
MUSH里的一个lua的表格:
testlua={
[item1]=6,
[item2]=3,
[item6]=8,
[item8]=9,
[item3]=4,
[item5]=7,
}

我想按照后边的value排序,有没有啥办法实现?就是结果是(从小到大):
testlua={
[item2]=3,
[item3]=4,
[item1]=6,
[item5]=7,
[item6]=8,
[item8]=9,
}

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2011-11-22 11:21:55 | 显示全部楼层
自己写个冒泡排序呗
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2011-11-22 11:33:39 | 显示全部楼层
本帖最后由 littleknife 于 2011-11-22 12:13 PM 编辑

回复 2# jason


真没想到。。。唉。。没学好啊。。。

testlua={
["item3"]=6,
["item1"]=3,
["item5"]=8,
["item6"]=9,
["item2"]=4,
["item4"]=7,
}

  1. print("=================")
  2. ts = {} -- table to hold the keys
  3. table.foreach (testlua, function (k, v) table.insert (ts, k) end )
  4. table.sort (ts) -- sort keys
  5. table.foreachi (ts, print) -- print sorted keys
复制代码



结贴。。惭愧,惭愧。。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2011-11-22 13:05:16 | 显示全部楼层
数据量小,可以冒泡

唉,看jason提到冒泡,我一下想起来,读书的时候,学的“数据结构”了
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2011-11-22 13:28:08 | 显示全部楼层
开辟一个新数组那是浪费空间。有一个临时变量就好了。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2011-11-22 13:33:27 | 显示全部楼层
回晚了啊。呵呵。
testlua={
["item3"]=6,
["item1"]=3,
["item5"]=8,
["item6"]=9,
["item2"]=4,
["item4"]=7,
}
ts = {} -- table to hold the keys
for k,v in pairs(testlua) do
        table.insert(ts,{K=k,V=v})
end
table.sort (ts,function(a,b) return a.V< b.V end) -- sort keys
for _,item in ipairs(ts) do
        print(item.K,item.V)
end
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2011-11-22 14:34:22 | 显示全部楼层
谢谢各位达人,大侠!这里灰常感谢各位的指点!介个介个。。。太有用啦。。。。哈哈哈。。。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2011-11-22 16:36:32 | 显示全部楼层
回复  jizong


    弱弱地问一句,数据结构在工作的时候不常用吗?
istillsun 发表于 2011-11-22 01:23 PM



    我的工作跟计算机完全不沾边~~~
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-28 06:01 PM , Processed in 0.010450 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表