lua 用递归方式实现冒泡排序

匿名 (未验证) 提交于 2019-12-02 23:45:01

 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:记录点点滴滴,从简单做起。欢迎指点,请多批评。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!