asda

Php code posted by asda
created at 21 Nov 08:26, updated at 21 Nov 19:59

Edit | Back
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
def merge_sort(m)
    if m.length <= 1
        return m
    end

    middle = m.length / 2
    left = m[0,middle]
    right = m[middle..-1]

    left = merge_sort(left)
    right = merge_sort(right)
    merge(left, right)
end
 
def merge(left, right)
    result = []
 
    until left.empty? || right.empty?
        # change the direction of this comparison to change the direction of the sort
        if left.first <= right.first
            result << left.shift
        else
            result << right.shift
        end
    end
 
    unless left.empty?
    
        result += left
    end
    unless right.empty?
        result += right
    end
    result
end
697 Bytes in 2 ms with coderay