Wikipedia: Sorting algorithm
Tengo has no built-in sort function, but it is straightforward to implement one using closures and recursion.
fmt := import("fmt")
merge := func(left, right) {
result := []
li := 0
ri := 0
for li < len(left) && ri < len(right) {
if left[li] <= right[ri] {
result = append(result, left[li])
li++
} else {
result = append(result, right[ri])
ri++
}
}
for li < len(left) {
result = append(result, left[li])
li++
}
for ri < len(right) {
result = append(result, right[ri])
ri++
}
return result
}
msort := func(arr) {
if len(arr) <= 1 { return arr }
mid := len(arr) / 2
return merge(msort(arr[:mid]), msort(arr[mid:]))
}
fmt.println(msort([5, 2, 8, 1, 9, 3]))
fmt.println(msort(["banana", "apple", "cherry", "date"]))
nums := [5, 2, 8, 1]
sorted := msort(nums)
fmt.println("original: ", nums)
fmt.println("sorted: ", sorted)
try it
[1, 2, 3, 5, 8, 9] ["apple", "banana", "cherry", "date"] original: [5, 2, 8, 1] sorted: [1, 2, 5, 8]