Joker(Div)
Always Here..
- Reaction score
- 86
So a code of mine spits random reals. How would I arrange them from Greatest to Least?
scope TestB initializer Init
private struct stack
private static real array value
private integer size
method operator []= takes integer index, real value returns nothing
set .value[this*.size+index] = value
endmethod
method operator [] takes integer index returns real
return .value[this*.size+index]
endmethod
method sort takes integer from, integer to, boolean rising returns nothing
local integer i = from
local integer a = 0
local real r
loop
exitwhen i == to or this<i> == null
set a = 0
loop
exitwhen a == i
if (rising and this<i> < this[a]) or (not rising and this<i> > this[a]) then
set r = this[a]
set this[a] = this<i>
set this<i> = r
set i = i-1
exitwhen true
endif
set a = a+1
endloop
set i = i+1
endloop
endmethod
static method create takes integer size returns stack
local stack this = stack.allocate()
set .size = size
return this
endmethod
endstruct
private function Test takes nothing returns nothing
local integer i = 0
local integer end = 20
local stack s = stack.create(20)
loop
exitwhen i == end
set s<i>= GetRandomReal(0,100)
set i = i+1
endloop
call s.sort(0,20,false)
set i = 0
loop
exitwhen i == end
call BJDebugMsg("Test = "+R2S(s<i>))
set i = i+1
endloop
endfunction
private function Init takes nothing returns nothing
local trigger trig = CreateTrigger()
call TriggerRegisterTimerEvent(trig,1,false)
call TriggerAddAction(trig,function Test)
endfunction
endscope</i></i></i></i></i></i></i>