Lua语言写的几个简单排序(1)
来源:互联网 发布:淘宝时尚男装店铺 编辑:程序博客网 时间:2024/05/16 09:53
本文主要用lua语言写了:冒泡排序,简单选择排序,快速排序三种排序方法。
原理就不多说了,你懂的。直接贴代码:
--[[print an array with some descriptionsdescriptions 打印array之前的描述信息array 需要打印的数组--]]function show(descriptions,array)io.write(descriptions,"\n\r\t")for i,value in ipairs(array) doio.write(value)if array[i+1] thenio.write(",")endendio.write("\n\r")end--[[获取数组的长度--]]function GetArrayLength(array)local n=0;while array[n+1] don=n+1endreturn n;end--[[冒泡排序array 需要排序的数字compareFunc 比较函数--]]function bubbleSort(array,compareFunc)local len = GetArrayLength(array)local i = lenwhile i > 0 doj=1while j< len doif compareFunc(array[j],array[j+1]) thenarray[j],array[j+1] = array[j+1],array[j]endj = j + 1endi = i - 1endend--[[选择排序算法array 需要排序的数字compareFunc 比较函数--]]function selectSort(array,compareFunc)local len = GetArrayLength(array)local i = 1while i <= len dolocal j= i + 1while j <=len doif compareFunc(array[i],array[j]) thenarray[i],array[j] = array[j],array[i]endj = j + 1endi = i + 1endend--[[快速排序方便统一调用array 需要排序的数字compareFunc 比较函数--]]function quickSort(array,compareFunc)quick(array,1,GetArrayLength(array),compareFunc)end--[[快速排序array 需要排序的数字left 左边已经完成比较的数组下标right 右边已经完成比较的数组下标compareFunc 比较函数--]]function quick(array,left,right,compareFunc)if(left < right ) thenlocal index = partion(array,left,right,compareFunc)quick(array,left,index-1,compareFunc)quick(array,index+1,right,compareFunc)endend--[[快速排序的一趟排序array 需要排序的数字left 左边已经完成比较的数组下标right 右边已经完成比较的数组下标compareFunc 比较函数--]]function partion(array,left,right,compareFunc)local key = array[left] -- 哨兵 一趟排序的比较基准local index = leftarray[index],array[right] = array[right],array[index] -- 与最后一个元素交换local i = leftwhile i< right doif compareFunc( key,array[i]) thenarray[index],array[i] = array[i],array[index]-- 发现不符合规则 进行交换index = index + 1endi = i + 1endarray[right],array[index] = array[index],array[right] -- 把哨兵放回return index;endarray={5,6,7,9,2,3,4,8,1,12,11,10}show("original array",array)bubbleSort(array, function(x,y) return x<y end)show("after bubbleSort array",array)selectSort(array, function(x,y) return y<x end)show("after selectsort array", array)quickSort(array, function(x,y) return x<y end)show("after quickSort array", array)
- Lua语言写的几个简单排序(1)
- lua 实现的几个简单的排序算法
- 空闲了 写几个简单的排序实现
- C语言中自己写几个简单的库函数
- 几个简单的排序
- Lua 语言的简单介绍
- Lua 语言的简单介绍
- Lua 语言的简单介绍
- [LUA]几个简单的luajava使用例子
- 几个简单的排序算法
- 几个简单的排序算法
- 几个简单的排序算法
- 几个简单的排序算法
- 用lua写一个闭包的例子(lua语言)
- lua写排序算法
- [lua]写个简单的Lua拓展-sleep函数
- Python 下写的几个排序算法
- 用JavaScript写的几个排序
- C# asp.net 中关于配置文件的配置和作用(数据库部分)
- Chrome 程序启动
- 解决Struts2整合jasperreport,输出格式为HTML时页面图片无法找到问题
- 支持向量机(三)核函数
- telnet协议远程登录的全面分析
- Lua语言写的几个简单排序(1)
- linux的引导流程及grub的配置
- sprintf和snprintf测试
- Android中SharedPreferences的模式 .
- 初探Flume—又一个分布式日志收集系统
- Win8 图片的四种绑定方式 --- 图片的前后台数据绑定
- Oracle 重建索引
- 支持向量机(四)
- MessageBox ,CFileDialog 和 fopen 之VC 和MFC 混合使用