Order by pair comparisons: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) m (syntax highlighting fixup automation) |
(Added XPL0 example.) |
||
Line 1,777: | Line 1,777: | ||
The colors of the rainbow, in sorted order, are: |
The colors of the rainbow, in sorted order, are: |
||
[red, orange, yellow, green, blue, indigo, violet] |
[red, orange, yellow, green, blue, indigo, violet] |
||
</pre> |
|||
=={{header|XPL0}}== |
|||
<syntaxhighlight lang "XPL0">include xpllib; \for Print |
|||
int Items, Size, I, J, Gap, JG, T, C, Count; |
|||
[Items:= ["violet", "red", "green", "indigo", "blue", "yellow", "orange"]; |
|||
Size:= 7; |
|||
Count:= 0; |
|||
Gap:= Size>>1; |
|||
while Gap > 0 do |
|||
[for I:= Gap to Size-1 do |
|||
[J:= I - Gap; |
|||
loop [JG:= J + Gap; |
|||
Count:= Count+1; |
|||
Print("%2d: Is %6s less than %6s (y/n)? ", |
|||
Count, Items(J), Items(JG)); |
|||
repeat OpenI(1); |
|||
C:= ChIn(1); |
|||
until C=^y or C=^n; |
|||
ChOut(0, C); CrLf(0); |
|||
if C = ^y then quit; |
|||
T:= Items(J); Items(J):= Items(JG); Items(JG):= T; |
|||
J:= J - Gap; |
|||
if J < 0 then quit; |
|||
]; |
|||
]; |
|||
Gap:= Gap>>1; |
|||
]; |
|||
Print("The colors of the rainbow, in sorted order, are:\n"); |
|||
for I:= 0 to Size-2 do Print("%s, ", Items(I)); |
|||
Print("%s\n", Items(I)); |
|||
]</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
1: Is violet less than indigo (y/n)? n |
|||
2: Is red less than blue (y/n)? y |
|||
3: Is green less than yellow (y/n)? n |
|||
4: Is violet less than orange (y/n)? n |
|||
5: Is indigo less than orange (y/n)? n |
|||
6: Is orange less than red (y/n)? n |
|||
7: Is orange less than yellow (y/n)? y |
|||
8: Is yellow less than indigo (y/n)? y |
|||
9: Is indigo less than blue (y/n)? n |
|||
10: Is yellow less than blue (y/n)? y |
|||
11: Is indigo less than green (y/n)? n |
|||
12: Is blue less than green (y/n)? n |
|||
13: Is yellow less than green (y/n)? y |
|||
14: Is indigo less than violet (y/n)? y |
|||
The colors of the rainbow, in sorted order, are: |
|||
red, orange, yellow, green, blue, indigo, violet |
|||
</pre> |
</pre> |