From c591db16c854780cae2f97ec096fed9835a8511b Mon Sep 17 00:00:00 2001 From: def Date: Wed, 9 Jul 2014 18:43:00 +0200 Subject: Add reversed proc --- lib/pure/algorithm.nim | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lib/pure/algorithm.nim b/lib/pure/algorithm.nim index 86d329763..7af1b2ad8 100644 --- a/lib/pure/algorithm.nim +++ b/lib/pure/algorithm.nim @@ -34,6 +34,20 @@ proc reverse*[T](a: var openArray[T]) = ## reverses the array `a`. reverse(a, 0, a.high) +proc reversed*[T](a: openArray[T], first, last: int): seq[T] = + ## returns the reverse of the array `a[first..last]`. + result = newSeq[T](last - first) + var x = first + var y = last + while x < last: + result[x] = a[y] + dec(y) + inc(x) + +proc reversed*[T](a: openArray[T]): seq[T] = + ## returns the reverse of the array `a`. + reversed(a, 0, a.high) + proc binarySearch*[T](a: openArray[T], key: T): int = ## binary search for `key` in `a`. Returns -1 if not found. var b = len(a) -- cgit 1.4.1-2-gfad0