# sort.nas # valkmjolnir 2021/4/2 # please make sure the compare function has the function like <= or >= # only using < or > may cause infinite loop or the program may crash var sort=func(){ srand(); # be aware! this causes global changes return func(vec,left,right,cmp=func(a,b){return a<=b;}){ if(left>=right) return nil; var base=left+int(rand()*(right-left)); (vec[left],vec[base])=(vec[base],vec[left]); var (i,j,tmp)=(left,right,vec[left]); while(i!=j){ while(i