@@ -48,13 +48,13 @@ Here's how you can implement heap sort in Swift:
48
48
49
49
``` swift
50
50
extension Heap {
51
- public mutating func sort () -> [T] {
52
- for i in ( elements.count - 1 ). stride ( through : 1 , by : -1 ) {
53
- swap (& elements[0 ], & elements[i])
54
- shiftDown (index : 0 , heapSize : i)
55
- }
51
+ public mutating func sort () -> [T] {
52
+ for i in stride ( from : ( elements.count - 1 ), through : 1 , by : -1 ) {
53
+ swap (& elements[0 ], & elements[i])
54
+ shiftDown (0 , heapSize : i)
55
+ }
56
56
return elements
57
- }
57
+ }
58
58
}
59
59
```
60
60
@@ -70,10 +70,10 @@ Because we need a max-heap to sort from low-to-high, you need to give `Heap` the
70
70
We can write a handy helper function for that:
71
71
72
72
``` swift
73
- public func heapsort <T >(a : [T], _ sort : (T, T) -> Bool ) -> [T] {
74
- let reverseOrder = { i1, i2 in sort (i2, i1) }
75
- var h = Heap (array : a, sort : reverseOrder)
76
- return h.sort ()
73
+ public func heapsort <T >(_ a : [T], _ sort : @escaping (T, T) -> Bool ) -> [T] {
74
+ let reverseOrder = { i1, i2 in sort (i2, i1) }
75
+ var h = Heap (array : a, sort : reverseOrder)
76
+ return h.sort ()
77
77
}
78
78
```
79
79
0 commit comments