⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sort.lua

📁 这个是脚本引擎lua的例程,这是一个嵌入式的袖珍引擎
💻 LUA
字号:
-- two implementations of a sort function-- this is an example only. Lua has now a built-in function "sort"-- extracted from Programming Pearls, page 110function qsort(x,l,u,f) if l<u then  local m=math.random(u-(l-1))+l-1	-- choose a random pivot in range l..u  x[l],x[m]=x[m],x[l]			-- swap pivot to first position  local t=x[l]				-- pivot value  m=l  local i=l+1  while i<=u do    -- invariant: x[l+1..m] < t <= x[m+1..i-1]    if f(x[i],t) then      m=m+1      x[m],x[i]=x[i],x[m]		-- swap x[i] and x[m]    end    i=i+1  end  x[l],x[m]=x[m],x[l]			-- swap pivot to a valid place  -- x[l+1..m-1] < x[m] <= x[m+1..u]  qsort(x,l,m-1,f)  qsort(x,m+1,u,f) endendfunction selectionsort(x,n,f) local i=1 while i<=n do  local m,j=i,i+1  while j<=n do   if f(x[j],x[m]) then m=j end   j=j+1  end x[i],x[m]=x[m],x[i]			-- swap x[i] and x[m] i=i+1 endendfunction show(m,x) io.write(m,"\n\t") local i=1 while x[i] do  io.write(x[i])  i=i+1  if x[i] then io.write(",") end end io.write("\n")endfunction testsorts(x) local n=1 while x[n] do n=n+1 end; n=n-1		-- count elements show("original",x) qsort(x,1,n,function (x,y) return x<y end) show("after quicksort",x) selectionsort(x,n,function (x,y) return x>y end) show("after reverse selection sort",x) qsort(x,1,n,function (x,y) return x<y end) show("after quicksort again",x)end-- array to be sortedx={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"}testsorts(x)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -