Skip to content

Commit 7dfe6b2

Browse files
authored
Merge pull request kodecocodes#379 from sigito/patch-1
Create big enough array for merge results
2 parents 52ec30f + bfef1ee commit 7dfe6b2

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

Merge Sort/MergeSort.playground/Contents.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ func merge<T: Comparable>(leftPile: [T], rightPile: [T]) -> [T] {
1212
var leftIndex = 0
1313
var rightIndex = 0
1414
var orderedPile = [T]()
15+
if orderedPile.capacity < leftPile.count + rightPile.count {
16+
orderedPile.reserveCapacity(leftPile.count + rightPile.count)
17+
}
1518

1619
while leftIndex < leftPile.count && rightIndex < rightPile.count {
1720
if leftPile[leftIndex] < rightPile[rightIndex] {

Merge Sort/MergeSort.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ func merge<T: Comparable>(leftPile: [T], rightPile: [T]) -> [T] {
1818
var leftIndex = 0
1919
var rightIndex = 0
2020
var orderedPile = [T]()
21+
if orderedPile.capacity < leftPile.count + rightPile.count {
22+
orderedPile.reserveCapacity(leftPile.count + rightPile.count)
23+
}
2124

2225
while leftIndex < leftPile.count && rightIndex < rightPile.count {
2326
if leftPile[leftIndex] < rightPile[rightIndex] {

0 commit comments

Comments
 (0)