Skip to content

Commit 28f7cae

Browse files
committed
added playground files
1 parent 8e677d3 commit 28f7cae

File tree

3 files changed

+62
-0
lines changed

3 files changed

+62
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
let array = [2, 1, 5, 4, 9]
2+
3+
func mergeSort(array: [Int]) -> [Int] {
4+
guard array.count > 1 else { return array } // 1
5+
let middleIndex = array.count / 2 // 2
6+
7+
let leftArray = mergeSort(Array(array[0..<middleIndex])) // 3
8+
9+
let rightArray = mergeSort(Array(array[middleIndex..<array.count])) // 4
10+
11+
return merge(leftPile: leftArray, rightPile: rightArray) // 5
12+
}
13+
14+
func merge(leftPile leftPile: [Int], rightPile: [Int]) -> [Int] {
15+
// 1
16+
var leftIndex = 0
17+
var rightIndex = 0
18+
19+
// 2
20+
var orderedPile = [Int]()
21+
22+
// 3
23+
while leftIndex < leftPile.count && rightIndex < rightPile.count {
24+
if leftPile[leftIndex] < rightPile[rightIndex] {
25+
orderedPile.append(leftPile[leftIndex])
26+
leftIndex += 1
27+
} else if leftPile[leftIndex] > rightPile[rightIndex] {
28+
orderedPile.append(rightPile[rightIndex])
29+
rightIndex += 1
30+
} else {
31+
orderedPile.append(leftPile[leftIndex])
32+
leftIndex += 1
33+
orderedPile.append(rightPile[rightIndex])
34+
rightIndex += 1
35+
}
36+
}
37+
38+
// 4
39+
while leftIndex < leftPile.count {
40+
orderedPile.append(leftPile[leftIndex])
41+
leftIndex += 1
42+
}
43+
44+
while rightIndex < rightPile.count {
45+
orderedPile.append(rightPile[rightIndex])
46+
rightIndex += 1
47+
}
48+
49+
return orderedPile
50+
}
51+
52+
let sortedArray = mergeSort(array)
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2+
<playground version='5.0' target-platform='ios'>
3+
<timeline fileName='timeline.xctimeline'/>
4+
</playground>
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<Timeline
3+
version = "3.0">
4+
<TimelineItems>
5+
</TimelineItems>
6+
</Timeline>

0 commit comments

Comments
 (0)