TDengine/deps/lua/test/sort.lua
Shuduo Sang de69a8a5af
Hotfix/sangshuduo/m2d 20210702 (#6719)
* [TD-4132]<test>: add taosdump-testcase of boundary value testing

* [TD-3952]<test>: add taodemo-testcase that query with restful connector

* merge master

* modify taosdemo-testcase

* add testcase of async subscirbe  and max sql num

* testcase-subscribe of super table

* testcase-modify sub

* modify subscribe testcase

* [TD-4238]<test>: add taodemo-testcase that  records of number in request sql less than 32767

* add taosdemo-subscribe-testcase

* update taosdemo testcase

* temp commit

* temp commit

* temp commit

* temp1

* temp

* [TD-4835] add lua lib

* [TD-4369]<test>: add testcase of resubscibe

* [TD-4826]<fix>: new error code 0x0406 (Dnode is exiting) for tsc

* [TD-4369]<test>: add testcase of resubscibe and json file

* temp

* update master to develop's version

* Update boundary2.py

* [TD-4912]<hotfix>: fix coredump when drop vnode

* Hotfix/sangshuduo/td 3801 taosdump coverity scan issue (#6642)

* [TD-3801]<fix>: taosdump coverity scan issue.

* merge from commit: 069169e7c1 and fix coverity scan issue.

Co-authored-by: Shuduo Sang <sdsang@taosdata.com>

* [TD-4932]fix jenkins errors on master branch (#6645)

* [TD-4932]fix jenkins errors on master branch

* fix

* fix

* fix

* fix

* [TD-4132]<test>:modify taosdump-testcase of column length

* [TD-4918]<fix>: taosdemo subscribe endAfterResume. (#6653)

* [TD-4915]<fix> fix show-create-database except

* Hotfix/sangshuduo/td 4892 taosdemo sub fetch (#6669)

* [TD-4892]<fix>: taosdemo subscribe fetch result.

* fix stbname length.

* restrict prefix length.

* submit empty

* fix minor code.

* fix crash if no result file.

* decrease few debug print level.

* fix offset issue

* [TD-4987]<fix>: issues memory sanitizier detected. (#6675)

* [TD-4826]<fix>: no extra sleep if no message in vwqueue

* [TD-4593]<fix>: fix vnode cannnot close while syncing

* Hotfix/sangshuduo/td 4918 taosdemo sub afterconsume (#6685)

* [TD-4918]<fix>: taosdemo subscribe endAfterResume.

* fix mask length.

* fix heap use-after-free.

* Hotfix/sangshuduo/td 4987 detected by mem sanitizer (#6684)

* [TD-4987]<fix>: issues memory sanitizier detected.

* fix mask width issue.

* [TD-4828]<fix> handle dnode exit code

* Hotfix/sangshuduo/td 3973 use jemalloc for master (#6702)

* [TD-3973]<feature>: add jemalloc as submodule.

* [TD-3973]<feature>: add jemalloc as submodule.

* [TD-3973]<feature>: use jemalloc.

build works as following instructions:

cmake .. -DJEMALLOC_ENABLED=true

make

* fix jemalloc at tag 5.2.1

* fix conflicts

* make install works.

* fix conflicts.

* release script works.

* fix typo

Co-authored-by: Shuduo Sang <sdsang@taosdata.com>

* TD-4835

* only compile in lua

* [td-4748]<fix>:fix the temp file generate buf on windows platform.

* change cmake options

* [TD-5007]<fix>: use build directory's taosdump to test. (#6710)

btw, solve two taosdemo test cases too.

* Hotfix/sangshuduo/td 4838 taosdump binary len bug (#6713)

* [TD-4838]<fix>: taosdump binary length bug.

* taosdump code refactoring.

* fix arm32 compile issue.

Co-authored-by: tomchon <haoran920c@163.com>
Co-authored-by: Shengliang Guan <slguan@taosdata.com>
Co-authored-by: Minglei Jin <mljin@taosdata.com>
Co-authored-by: Baosheng Chang <changb9@mcmaster.ca>
Co-authored-by: Hongze Cheng <hzcheng@taosdata.com>
Co-authored-by: Shuduo Sang <sdsang@taosdata.com>
Co-authored-by: Yiqing Liu <yqliu@taosdata.com>
Co-authored-by: Hui Li <52318143+plum-lihui@users.noreply.github.com>
Co-authored-by: yihaoDeng <yhdeng@taosdata.com>
Co-authored-by: wpan <wpan@taosdata.com>
Co-authored-by: Haojun Liao <hjxilinx@users.noreply.github.com>
Co-authored-by: Haojun Liao <hjliao@taosdata.com>
2021-07-02 17:31:12 +08:00

66 lines
1.5 KiB
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 110
function 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)
end
end
function 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
end
end
function 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")
end
function 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 sorted
x={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"}
testsorts(x)