1、漢諾塔演算法
-- 漢諾塔演算法
-- n:移動圓盤的個數
-- from:源柱
-- to:目標柱
-- fuzhu:輔助柱
function changepage(n, from, to, fuzhu)
if(n == 1) then
print(string.format("移動圓盤從:%s 到 %s", from, to))
return
endchangepage(n - 1, from, fuzhu, to)
print(string.format("移動圓盤從:%s 到 %s", from, to))
changepage(n - 1, fuzhu, to, from)
endchangepage(5,'a', 'b', 'c')
2、判斷乙個陣列是否為順序(遞給求解)
-- tab:目標表
-- len:表的長度
function isarraysortedorder(tab, len)
if(len == 1) then return true end
if(tab[len] < tab[len - 1]) then return false end
return isarraysortedorder(tab, len - 1)
endtab =
print(isarraysortedorder(tab, #tab))
3、氣泡排序(改進的)
-- 氣泡排序
-- tab:目標表
-- len:表的長度
-- count:測試排序執行的次數
function bubblesort(tab, len)
local issort = true
local count = 0
for i = 1, len do
for j = 1, len - i do
count = count + 1
if(tab[j] > tab[j + 1])then
issort = false
local temp = tab[j]
tab[j] = tab[j + 1]
tab[j + 1] = temp
endend
if(issort) then
break
else
issort = true
endend
print(table.concat(tab, ','))
print(count)
end--tab =
tab =
bubblesort(tab, #tab)
4、選擇排序
-- 選擇排序
function selection(tab, len)
local min = 1;
local temp
for i = 1, len - 1 do
min = i
for j = i + 1, len do
if tab[min] > tab[j] then
min = j
temp = tab[i]
tab[i] = tab[j]
tab[j] = temp
endend
endprint(table.concat(tab, ','))
endtab =
selection(tab, #tab)
LUA學習之編譯
cd src make linux gcc o2 wall dlua compat all dlua use linux c o lua.o lua.c gcc o lua lua.o liblua.a lm wl,e ldl lreadline usr lib gcc x86 64 redhat ...
lua學習之迴圈
參考 目錄 while迴圈 for迴圈 泛型for迴圈 reapeat util 迴圈控制語句 while condition do statements end在condition為true的時候執行迴圈體。for var exp1,exp2,exp3 do 執行體 endvar從exp1變化到e...
lua 學習之編譯
lua 是解釋語言 但 lua 允許在執行源 前,先將源 編譯為一種中間形式 區別解釋語言的主要特徵並不在於是否能編譯它們 在於編譯器是否是語言執行時庫的一部分 是否有能力執行動態生成的 dofile函式是一種內建的操作,用於執行 lua 塊 dofile僅是做了loadfile的輔助工作 load...