Lua 編寫冒泡演算法

2021-08-22 12:01:43 字數 810 閱讀 3405

近期使用lua做熱更新的公司越來越多。為了跟上時代的腳步。熟練使用lua。也為了重溫好久不寫的演算法

冒泡演算法(bubble sort)

時間複雜度

o(n∧2)

演算法描述

比較相鄰的元素。如第乙個比第二個大,就相互交換

對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對,這樣在最後的元素應該是最小的數

針對所有的元素重複以上步驟。除了最後乙個

重複1~3,直到排序完成

local tablea = 

function bublesort(tab)

for i = 1, #tab do

for j = 1, #tab - i do

if(tab[j]< tab[j+1]) then

local tempnum = tab[j]

tab[j] = tab[j+1]

tab[j+1] = tempnum

endend

endend

print("排序前",table.concat(tablea,","))

bublesort(tablea)

print("排序後",table.concat(tablea,","))

輸出結果:

排序前    1,1,2,5,6,8,9,5,3,5

排序後    9,8,6,5,5,5,3,2,1,1

[finished in 0.1s]

lua模組編寫

lua允許我們編寫自定義模組以便後面呼叫,在編寫模組之前我們先認識2個知識點 1.lua語言中陣列,模組其實都是table 2.在之前的lua基本語法裡我們知道函式是可以賦值給變數的 好,我們新建乙個檔案my.lua 如下 local my my.name 滄浪水 my.url www.freecl...

用Lua編寫ACM演算法競賽開燈問題

有n盞燈,編號為1 n。第乙個人把所有燈開啟,第二個人按下所有編號為2的倍數的開關 這些燈將被關掉 第三個人按下所有編號為3的倍數的開關 其中關掉的燈將被開啟,開著的燈將被關閉 依此類推。一共有k個人,問最後有哪些燈開著?輸入n和k,輸出開著的燈的編號。k n 1000。function func ...

Lua簡單使用,lua工具類編寫,lua表的使用

專案中的工具類編寫,以utils.lua為例 首先建立乙個表。utils utils or 尋找陣列中某個值的下標 utils utils or 尋找陣列中某個值的下標,僅在table中每個值都不一樣時有效 utils.findidxbyvalue function arr,value local ...