登录 立即注册

首页 > lua论坛 > Alua源码 (发帖)

标题: lua快速排序表内数字

作者: skyxi @Ta

时间: 2018-07-24 00:13

点击: 308


  1. --打印表内数字
  2. function PrintResult()
  3.     for i=1,#arr do
  4.        print(arr[i].." ")
  5.     end 
  6. end
  7. --排序函数
  8. function Quick_Sort(arr,low,height)
  9.     if low >= height then
  10.         return
  11.     end 
  12.     local i = low 
  13.     local j = height
  14.     local key = arr[low]
  15.     while i<j do
  16.         while i<j and arr[j]>=key do --注意=号必须有,否则不会找到真正满足条件(即小于key)的数
  17.             j = j-1 
  18.         end 
  19.         --从后往前找到第一个小于key的数
  20.         arr[i]=arr[j]
  21.         while i<j and arr[i]<=key do
  22.             i = i + 1 
  23.         end 
  24.         -- 从前往后找到第一个大于key的数
  25.         arr[j]=arr[i]
  26.     end 
  27.     arr[i] = key -- 临界值复位
  28.     Quick_Sort(arr,low,i-1)
  29.     Quick_Sort(arr,i+1,height)
  30. end
  31. --测试数据
  32. arr={1,324,35,2345,24,2,4,65}
  33. --排序,从1到表最后一项,即整个表
  34. Quick_Sort(arr,1,#arr)
  35. --查看结果
  36. PrintResult()

此函数可以将表内数字按从小到大排序,并储存在原来的表里

『回复列表(0)』

回复需要登录

12月13日 17:04 星期四

效率: 0.036秒

[首页] [回顶]

官方QQ群1:236938279

官方QQ群2:621400904

本站由hu60wap6 驱动 Lucky Nine

[聊天-hu60]skyxi:测试域名失效了@洛伦兹力不做功,