记录---学习lua中,尝试递归写冒泡算法。
1 --冒泡原理:比较相邻元素,如果第一个比第二个大,就交换他们两个。 2 3 tb={1,-1,0,89,45,-90.1,3} 4 i=1--循环次数 5 statrIndex=1 6 function changeData(k) 7 if tb[k]<tb[k+1] then 8 tb[k],tb[k+1]=tb[k+1],tb[k] 9 end 10 end 11 --递归实现冒泡函数 12 function recursion(k) 13 if k>#tb-i then--交换完成,执行下一次循环。循环次数i增加1,交换角标k重置为1 14 i=i+1 15 k=1 16 end 17 changeData(k)--交换元素函数 18 return i>=#tb or recursion(k+1)--对递归进行控制,添加结束条件。 i<#tb and recursion(k+1)这个写法也是可以的 19 end 20 recursion(statrIndex);--调用函数 21 print(table.concat( tb, ", ", 1, #tb))--打印排序完成的table
输出结果:
TAG:记录点点滴滴,从简单做起。欢迎指点,请多批评。