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 From 8b796763a37a41be107b1f4aae50b28a56a3cdb9 Mon Sep 17 00:00:00 2001 From: def Date: Wed, 9 Jul 2014 18:54:05 +0200 Subject: Fix to included last element in reversed --- lib/pure/algorithm.nim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/pure/algorithm.nim b/lib/pure/algorithm.nim index 7af1b2ad8..89c83a8a4 100644 --- a/lib/pure/algorithm.nim +++ b/lib/pure/algorithm.nim @@ -36,10 +36,10 @@ proc reverse*[T](a: var openArray[T]) = 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) + result = newSeq[T](last - first + 1) var x = first var y = last - while x < last: + while x <= last: result[x] = a[y] dec(y) inc(x) -- cgit 1.4.1-2-gfad0 From ce3d1b302ebf30d93697be9c85112350bb9e4eb0 Mon Sep 17 00:00:00 2001 From: def Date: Wed, 9 Jul 2014 21:25:39 +0200 Subject: Update news.txt --- web/news.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/web/news.txt b/web/news.txt index eef71a2f7..d432a0e95 100644 --- a/web/news.txt +++ b/web/news.txt @@ -20,6 +20,7 @@ News - Added module ``cpuinfo``. - Added module ``threadpool``. - ``sequtils.distnct`` has been renamed to ``sequtils.deduplicate``. + - Added ``algorithm.reversed`` 2014-04-21 Version 0.9.4 released -- cgit 1.4.1-2-gfad0