Sorting algorithms/Gnome sort: Difference between revisions

Added Swift solution
m (Rust - replace Ord by PartialOrd)
(Added Swift solution)
Line 2,782:
 
1 to: 10 do: [ :i | (o at: i) displayNl ].</lang>
 
=={{header|Swift}}==
<lang swift>func gnomeSort<T: Comparable>(_ a: inout [T]) {
var i = 1
var j = 2
while i < a.count {
if a[i - 1] <= a[i] {
i = j
j += 1
} else {
a.swapAt(i - 1, i)
i -= 1
if i == 0 {
i = j
j += 1
}
}
}
}
 
var array = [10, 8, 4, 3, 1, 9, 0, 2, 7, 5, 6]
print("before: \(array)")
gnomeSort(&array)
print(" after: \(array)")</lang>
 
{{out}}
<pre>
before: [10, 8, 4, 3, 1, 9, 0, 2, 7, 5, 6]
after: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
</pre>
 
=={{header|Tcl}}==
1,777

edits