Sorting from Greatest to Least

Tom Jones

N/A
Reaction score
437
JASS:
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> &lt; this[a]) or (not rising and this<i> &gt; 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(&quot;Test = &quot;+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>
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top