前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【每日算法】lua实现快排算法

【每日算法】lua实现快排算法

作者头像
渴望飞翔的猪
发布2022-07-17 10:47:39
2890
发布2022-07-17 10:47:39
举报
文章被收录于专栏:葵花宝典007

直接贴代码,果然写起来比c++快哈哈

代码语言:javascript
复制
function PrintResult()
    for i=1,#arr do
        io.write(arr[i].." ")
    end 
    io.write("\n")
end

function Quick_Sort(arr,low,height)
    if low >= height then
        return
    end 
    local i = low 
    local j = height
    local key = arr[low]
    while i<j do
        while i<j and arr[j]>=key do --注意=号必须有,否则不会找到真正满足条件(即小于key)的数
            j = j-1 
        end 
        --从后往前找到第一个小于key的数
        arr[i]=arr[j]
        while i<j and arr[i]<=key do
            i = i + 1 
        end 
        -- 从前往后找到第一个大于key的数
        arr[j]=arr[i]
    end 
    arr[i] = key -- 临界值复位
    Quick_Sort(arr,low,i-1)
    Quick_Sort(arr,i+1,height)
end

arr={1,324,35,2345,24,2,4,65}
PrintResult()
Quick_Sort(arr,1,#arr)
PrintResult()

注意事项注释里面,第一次写就是少了=,发现结果错乱了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-10-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档