Sorting algorithms/Comb sort: Difference between revisions
Content added Content deleted
(Added Algol W) |
No edit summary |
||
Line 3,516: | Line 3,516: | ||
<pre>45, 414, 862, 790, 373, 961, 871, 56, 949, 364 |
<pre>45, 414, 862, 790, 373, 961, 871, 56, 949, 364 |
||
45, 56, 364, 373, 414, 790, 862, 871, 949, 961</pre> |
45, 56, 364, 373, 414, 790, 862, 871, 949, 961</pre> |
||
=={{header|Vlang}}== |
|||
{{trans|go}} |
|||
<lang vlang>fn main() { |
|||
mut a := [170, 45, 75, -90, -802, 24, 2, 66] |
|||
println("before: $a") |
|||
comb_sort(mut a) |
|||
println("after: $a") |
|||
} |
|||
fn comb_sort(mut a []int) { |
|||
if a.len < 2 { |
|||
return |
|||
} |
|||
for gap := a.len; ; { |
|||
if gap > 1 { |
|||
gap = gap * 4 / 5 |
|||
} |
|||
mut swapped := false |
|||
for i := 0; ; { |
|||
if a[i] > a[i+gap] { |
|||
a[i], a[i+gap] = a[i+gap], a[i] |
|||
swapped = true |
|||
} |
|||
i++ |
|||
if i+gap >= a.len { |
|||
break |
|||
} |
|||
} |
|||
if gap == 1 && !swapped { |
|||
break |
|||
} |
|||
} |
|||
}</lang> |
|||
=={{header|Wren}}== |
=={{header|Wren}}== |