fixes #5625
This commit is contained in:
parent
ba8359831a
commit
a88a909565
1 changed files with 9 additions and 7 deletions
|
|
@ -112,8 +112,7 @@ proc lowerBound*[T](a: openArray[T], key: T, cmp: proc(x,y: T): int {.closure.})
|
||||||
count = step
|
count = step
|
||||||
|
|
||||||
proc lowerBound*[T](a: openArray[T], key: T): int = lowerBound(a, key, cmp[T])
|
proc lowerBound*[T](a: openArray[T], key: T): int = lowerBound(a, key, cmp[T])
|
||||||
proc merge[T](a, b: var openArray[T], lo, m, hi: int,
|
|
||||||
cmp: proc (x, y: T): int {.closure.}, order: SortOrder) =
|
|
||||||
template `<-` (a, b) =
|
template `<-` (a, b) =
|
||||||
when false:
|
when false:
|
||||||
a = b
|
a = b
|
||||||
|
|
@ -121,6 +120,9 @@ proc merge[T](a, b: var openArray[T], lo, m, hi: int,
|
||||||
shallowCopy(a, b)
|
shallowCopy(a, b)
|
||||||
else:
|
else:
|
||||||
copyMem(addr(a), addr(b), sizeof(T))
|
copyMem(addr(a), addr(b), sizeof(T))
|
||||||
|
|
||||||
|
proc merge[T](a, b: var openArray[T], lo, m, hi: int,
|
||||||
|
cmp: proc (x, y: T): int {.closure.}, order: SortOrder) =
|
||||||
# optimization: If max(left) <= min(right) there is nothing to do!
|
# optimization: If max(left) <= min(right) there is nothing to do!
|
||||||
# 1 2 3 4 ## 5 6 7 8
|
# 1 2 3 4 ## 5 6 7 8
|
||||||
# -> O(n) for sorted arrays.
|
# -> O(n) for sorted arrays.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue