快速排序实现
来源:互联网 发布:mp3网络歌曲地址 编辑:程序博客网 时间:2024/06/05 14:11
参考 :http://blog.csdn.net/hguisu/article/details/7776068
--[[1)选择一个基准元素,通常选择第一个元素或者最后一个元素,2)通过一趟排序讲待排序的记录分割成独立的两部分,其中一部分记录的元素值均比基准元素值小。另一部分记录的 元素值比基准值大。3)此时基准元素在其排好序后的正确位置4)然后分别对这两部分记录用同样的方法继续进行排序,直到整个序列有序。--]]function swap(i1,i2,arr) local tmp = arr[i2] arr[i2] = arr[i1] arr[i1] = tmpend function partition(arr,low,high) local privotKey privotKey = arr[low] while(low < high)do --从表的两端交替地向中间扫描, --从high 所指位置向前搜索 --将比基准元素小的交换到低端 while(low < high and arr[high] >= privotKey) do high = high - 1 end swap(low,high,arr) --从low 所指位置向后搜索 while(low < high and arr[low] <= privotKey ) do low = low + 1 end swap(low, high,arr) end return lowend function quickSort(arr,low,high) if low < high then local privotLoc = partition(arr,low,high); --将表一分为二 quickSort(arr,low,privotLoc -1); --递归对低子表递归排序 quickSort(arr,privotLoc + 1, high); --递归对高子表递归排序 end endarr = {3,3,3,3,3,9,8,7,6,5,4}quickSort(arr,1,#arr)print(table.concat(arr,","))
阅读全文
0 0
- 快速排序算法实现
- 快速排序的实现
- java实现快速排序
- 快速排序---c#实现
- 快速排序算法实现
- 快速排序Java实现
- 快速排序算法实现
- 快速排序java实现
- 快速排序JAVA实现
- AWK快速排序实现
- Java实现快速排序
- 快速排序实现
- 数组实现快速排序
- 快速排序的实现
- 快速排序--Java实现
- 递归实现快速排序
- 快速排序java实现
- C#实现快速排序
- 【Reverse Integer】 --MyLeetCode(三)
- Linux时间子系统(一) -- 原理
- 【拜小白opencv】14-只去除RGB的某一颜色通道
- SublimeClang
- 洛谷
- 快速排序实现
- 主索引和二级索引区别,并创建一个二级索引
- SpringMVC详解(一)------入门实例
- tensorflow 学习笔记9 卷积神经网络(CNN)实现mnist手写识别
- 设计模式之迭代器模式
- Tomcat服务器环境配置
- Kanzi在汽车HMI领域的应用-Kanzi UI Solution
- springCloud微服务使用
- Hibernate导包