美文网首页
二、算法——06、快速排序(lua实现)

二、算法——06、快速排序(lua实现)

作者: GameObjectLgy | 来源:发表于2020-10-22 09:27 被阅读0次
-----快速排序---
local function QuickSort(t, lowIndex, hightIndex)
    if lowIndex >= hightIndex then
        return
    end

    local low = lowIndex
    local hight = hightIndex
    local base = t[low]
    
    while low < hight do
        --从右往左找小于base的数
        while t[hight] >= base and low < hight do
            hight = hight - 1
        end
        t[low] = t[hight]

        --从左往右找大于base的数
        while t[low] < base and low < hight do
            low = low + 1
        end
        t[hight] = t[low ]
    end
    t[low] = base
    QuickSort(t, lowIndex, low)
    QuickSort(t, low+1, hightIndex)
end
-----QuickSort test--------
local t = {5,1,3,6,3,4,2,3}
print("---before QuickSort sort---")
print(table.concat(t,' '))
print("---after QuickSort sort---")
QuickSort(t, 1, 8)
print(table.concat(t,' '))

相关文章

  • 二、算法——06、快速排序(lua实现)

  • 数据结构&算法(一)

    一、Java实现快速排序算法 二、Java实现折半插入排序算法 三、Java实现冒泡排序算法

  • 七大排序算法之快速排序

    七大排序算法之快速排序 @(算法笔记)[排序算法, 快速排序, C++实现] [TOC] 快速排序的介绍: 快速排...

  • 数据结构02-高效排序算法

    第二章 高效排序算法 第二章 高效排序算法一、快速排序基本思想快速排序图示一次划分C 语言实现Java 语言实现算...

  • 排序

    八大排序算法 一、归并排序 递归及非递归的JAVA实现 二、快速排序 快排算法JAVA实现 三、堆排序 堆排序堆排...

  • 手撕代码 之 快速排序

    1.实现快速排序算法 问题描述给定一个无序数组int[ ] a,使用快速排序算法进行排序。 解题思路对于快速排序,...

  • 三大排序算法

    归并排序[稳定的排序算法] 递归实现 非递归实现 快速排序[不稳定的排序算法] 堆排序[不稳定的排序算法]

  • 快速排序

    手写java版快速排序算法实现

  • 基础算法|快速排序

    快速排序(Quicksort),是对冒泡排序算法的一种改进。 快速排序算法通过多次比较和交换来实现排序,其排序流程...

  • 排序算法07:三向快速排序

    算法介绍 在上一篇 排序算法06:快速排序 中,可以知道,快速排序不停的递归切分数组。在有大量的重复元素情况下,这...

网友评论

      本文标题:二、算法——06、快速排序(lua实现)

      本文链接:https://www.haomeiwen.com/subject/honemktx.html