Sorting algorithms/Shell sort: Difference between revisions

Content deleted Content added
Petelomax (talk | contribs)
Added in-place solution in Swift 2.1, based on Python in-place example.
Line 2,157:
<pre>[54, 67, 65, 8, 56, 83, 64, 42, 20, 17]
[8, 17, 20, 42, 54, 56, 64, 65, 67, 83]</pre>
 
=={{header|Swift}}==
{{works with|Swift|2.1}}
<lang swift>func shellsort<T where T : Comparable>(inout seq: [T]) {
var inc = seq.count / 2
while inc > 0 {
for (var i, el) in EnumerateSequence(seq) {
while i >= inc && seq[i - inc] > el {
seq[i] = seq[i - inc]
i -= inc
}
seq[i] = el
}
if inc == 2 {
inc = 1
} else {
inc = inc * 5 / 11
}
}
}</lang>
 
{{in}}
<pre>var data = [22, 7, 2, -5, 8, 4]</pre>
 
{{out}}
<pre>shellsort(&data) // [-5, 2, 4, 7, 8, 22]</pre>
 
=={{header|Tcl}}==