Sorting algorithms/Comb sort: Difference between revisions
Content added Content deleted
m (→{{header|Go}}: library change) |
No edit summary |
||
Line 741: | Line 741: | ||
1 2 3 4 5 6</lang> |
1 2 3 4 5 6</lang> |
||
=={{header|NetRexx}}== |
|||
<lang NetRexx>/* NetRexx */ |
|||
options replace format comments java crossref savelog symbols binary |
|||
placesList = [String - |
|||
"UK London", "US New York" - |
|||
, "US Boston", "US Washington" - |
|||
, "UK Washington", "US Birmingham" - |
|||
, "UK Birmingham", "UK Boston" - |
|||
] |
|||
sortedList = combSort(String[] Arrays.copyOf(placesList, placesList.length)) |
|||
lists = [placesList, sortedList] |
|||
loop ln = 0 to lists.length - 1 |
|||
cl = lists[ln] |
|||
loop ct = 0 to cl.length - 1 |
|||
say cl[ct] |
|||
end ct |
|||
say |
|||
end ln |
|||
return |
|||
method combSort(input = String[]) public constant binary returns String[] |
|||
swaps = isTrue |
|||
gap = input.length |
|||
loop label comb until gap = 1 & \swaps |
|||
gap = int gap / 1.25 |
|||
if gap < 1 then |
|||
gap = 1 |
|||
i_ = 0 |
|||
swaps = isFalse |
|||
loop label swaps until i_ + gap >= input.length |
|||
if input[i_].compareTo(input[i_ + gap]) > 0 then do |
|||
swap = input[i_] |
|||
input[i_] = input[i_ + gap] |
|||
input[i_ + gap] = swap |
|||
swaps = isTrue |
|||
end |
|||
i_ = i_ + 1 |
|||
end swaps |
|||
end comb |
|||
return input |
|||
method isTrue public constant binary returns boolean |
|||
return 1 == 1 |
|||
method isFalse public constant binary returns boolean |
|||
return \isTrue |
|||
<lang> |
|||
;Output |
|||
<pre> |
|||
UK London |
|||
US New York |
|||
US Boston |
|||
US Washington |
|||
UK Washington |
|||
US Birmingham |
|||
UK Birmingham |
|||
UK Boston |
|||
UK Birmingham |
|||
UK Boston |
|||
UK London |
|||
UK Washington |
|||
US Birmingham |
|||
US Boston |
|||
US New York |
|||
US Washington |
|||
</pre> |
|||
=={{header|Objeck}}== |
=={{header|Objeck}}== |