@@ -27,16 +27,15 @@ import Foundation
27
27
//////////////////////////////////////
28
28
29
29
30
- public func bucketSort< T: Sortable > ( elements: [ T ] , distributor: Distributor , sorter: Sorter , buckets: [ Bucket < T > ] ) -> [ T ] {
31
- var bucketsCopy = buckets
30
+ public func bucketSort< T: Sortable > ( elements: [ T ] , distributor: Distributor , sorter: Sorter , buckets: inout [ Bucket < T > ] ) -> [ T ] {
32
31
for elem in elements {
33
- distributor. distribute ( elem, buckets: & bucketsCopy )
32
+ distributor. distribute ( element : elem, buckets: & buckets )
34
33
}
35
34
36
35
var results = [ T] ( )
37
36
38
37
for bucket in buckets {
39
- results += bucket. sort ( sorter)
38
+ results += bucket. sort ( algorithm : sorter)
40
39
}
41
40
42
41
return results
@@ -48,7 +47,7 @@ public func bucketSort<T: Sortable>(elements: [T], distributor: Distributor, sor
48
47
49
48
50
49
public protocol Distributor {
51
- func distribute< T: Sortable > ( element: T , inout buckets: [ Bucket < T > ] )
50
+ func distribute< T: Sortable > ( element: T , buckets: inout [ Bucket < T > ] )
52
51
}
53
52
54
53
/*
@@ -70,12 +69,12 @@ public struct RangeDistributor: Distributor {
70
69
71
70
public init ( ) { }
72
71
73
- public func distribute< T: Sortable > ( element: T , inout buckets: [ Bucket < T > ] ) {
72
+ public func distribute< T: Sortable > ( element: T , buckets: inout [ Bucket < T > ] ) {
74
73
let value = element. toInt ( )
75
74
let bucketCapacity = buckets. first!. capacity
76
75
77
76
let bucketIndex = value / bucketCapacity
78
- buckets [ bucketIndex] . add ( element)
77
+ buckets [ bucketIndex] . add ( item : element)
79
78
}
80
79
}
81
80
@@ -139,6 +138,6 @@ public struct Bucket<T:Sortable> {
139
138
}
140
139
141
140
public func sort( algorithm: Sorter ) -> [ T ] {
142
- return algorithm. sort ( elements)
141
+ return algorithm. sort ( items : elements)
143
142
}
144
143
}
0 commit comments