lua 脚本实现3种冒泡排序算法

本文介绍了Lua中实现冒泡排序的三种不同算法。第一种是基础冒泡排序,通过遍历数组实现元素交换;第二种和第三种算法在优化效率上有所不同,其中第三种算法能更早地检测到已排序的情况,避免了不必要的比较。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一个算法是基础的冒泡排序算法,算法设计的种排序算法的基本算法

local array = {6,16,19,12,15,13,30,32,21,24,1,7,10}

for i=1,#array do

  for j=i+1,#array do
   if array[i] < array[j] then
       array[i], array[j] = array[j], array[i]
   end
  end
end
for k ,v in pairs(array) do
    print("k = " .. k .. " v = " .. v)
end

第二算法,是冒泡的延伸,倒着比较,相邻连个做比较
local array1 = {6,16,19,12,15,13,30,32,21,24,1,7,10}
for i=1,#array1 do
    for j = #array1,i+1, -1 do
    if array1[j] < array1[j-1] then
       array1[j],  array1[j-1] = array1[j-1], array1[j]
   end
   end
end
for k ,v in pairs(array1) do
    print("k1 = " .. k .. " v1 = " .. v)

end

第三种算法,是第二种算法的延伸,如果在第五次排序的时候,该次排序就已经排好序,第二种算法还是会继续比较,从而浪费时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值