File tree Expand file tree Collapse file tree 2 files changed +10
-14
lines changed
Bubble Sort/MyPlayground.playground Expand file tree Collapse file tree 2 files changed +10
-14
lines changed Original file line number Diff line number Diff line change @@ -4,10 +4,11 @@ public func BubbleSort<T> (_ elements: [T]) -> [T] where T: Comparable {
4
4
var array = elements
5
5
6
6
for i in 0 ..< array. count {
7
- for j in i+ 1 ..< array. count {
8
- if array [ j] < array [ i] {
9
- let tmp = array [ i]
10
- array [ i] = array [ j]
7
+ for j in 1 ..< array. count- i {
8
+ print ( array, " comparing [ \( j- 1 ) ] with [ \( j) ] " )
9
+ if array [ j] < array [ j- 1 ] {
10
+ let tmp = array [ j- 1 ]
11
+ array [ j- 1 ] = array [ j]
11
12
array [ j] = tmp
12
13
}
13
14
}
@@ -16,12 +17,7 @@ public func BubbleSort<T> (_ elements: [T]) -> [T] where T: Comparable {
16
17
return array
17
18
}
18
19
19
-
20
- var array = [ Int] ( )
21
-
22
- for _ in 0 ... 10 {
23
- array. append ( Int . random ( in: 0 ... 500 ) )
24
- }
20
+ var array = [ 4 , 2 , 1 , 3 ]
25
21
26
22
print ( " before: " , array)
27
23
print ( " after: " , BubbleSort ( array) )
Original file line number Diff line number Diff line change @@ -29,10 +29,10 @@ public func BubbleSort<T> (_ elements: [T]) -> [T] where T: Comparable {
29
29
var array = elements
30
30
31
31
for i in 0 ..< array. count {
32
- for j in i + 1 ..< array. count {
33
- if array [ j] < array [ i ] {
34
- let tmp = array [ i ]
35
- array [ i ] = array [ j]
32
+ for j in 1 ..< array. count- i {
33
+ if array [ j] < array [ j - 1 ] {
34
+ let tmp = array [ j - 1 ]
35
+ array [ j - 1 ] = array [ j]
36
36
array [ j] = tmp
37
37
}
38
38
}
You can’t perform that action at this time.
0 commit comments