1帮我完善下代码,有红包哦,要求不要用table.sort
lua吧
全部回复
仅看楼主
level 4
local t = { 333,342,3,22,39,55,67,80,999}
function p(t)
for i = 1,#t do
print(t[i])
end
end
function sort(t, compare)
local function walk(left, right)
--if compare(a, b) then
--end
end
walk(1, #t)
end
sort(t, function(a, b)
return a < b
end)
p(t)
2017年06月07日 14点06分 1
level 11
[滑稽]那么简单 来个选择就好了 快排也行。
来送你段haskell
sort n = case n of [] -> []
(x:xs)=sort [b|b<-xs,b>=x] ++[x]++ sort [b|b<-xs,b<x]
2017年06月08日 07点06分 2
楼主写的我能看的懂.你写的我看不明白啊.是C么?
2017年06月10日 02点06分
@hpot [滑稽]haskell 邪教
2017年06月10日 02点06分
Haskell.是亚索放风的配音么?
2017年06月11日 02点06分
level 11
并且table.sort速度比你的lua版本快很多的
2017年06月08日 07点06分 3
level 5
怎么给我红包呢?微信么?
2017年06月10日 02点06分 4
我要的是可以在后面通过传参,就成升序或降序的
2017年06月11日 02点06分
你这个只能升序啊
2017年06月11日 02点06分
level 5
local t = { 333,342,3,22,39,55,67,80,999}
local a=0
for i=1 , #t ,1 do
for x=1 , #t ,1 do
if t[i]>t[x] then
a =t[i]
t[i]=t[x]
t[x]=a
end
end
end
============================
for i=1 ,#t ,1do
print(t[i])
end
这个代码重点是替换.
a =t[i]
t[i]=t[x]
t[x]=a
t[1]的值小于t[2]就把1和2的值互换.然后坐标1和坐标3比较.如果3大就再互换.
微信号hpot1984...求红包[哈哈]
2017年06月10日 08点06分 5
level 5
t = { 333,342,3,22,39,55,67,80,999}
function paixu(t,d)--d是判断符号.文本型">"或者"<"
local a=0
for i=1 , #t ,1 do
for x=1 , #t ,1 do
if d == ">"then
if t[i] > t[x] then
a =t[i]
t[i]=t[x]
t[x]=a
end
end
if d == "<"then
if t[i] < t[x] then
a =t[i]
t[i]=t[x]
t[x]=a
end
end
end
end
for i = 1,#t , 1do
print(t[i])
end
end
paixu(t,"<")
只是加了判断.代码不是很精炼.但是思路大概没错.
2017年06月11日 03点06分 6
我就问下,给你红包了么
2017年06月12日 06点06分
真的给了.这个楼主蛮实在的
2017年06月13日 03点06分
1