Sorting Algorithms/Circle Sort: Difference between revisions
Content added Content deleted
MaiconSoft (talk | contribs) (Added Delphi example) |
Alextretyak (talk | contribs) (Added 11l) |
||
Line 48: | Line 48: | ||
* For more information on Circle sorting, see [http://sourceforge.net/p/forth-4th/wiki/Circle%20sort/ Sourceforge]. |
* For more information on Circle sorting, see [http://sourceforge.net/p/forth-4th/wiki/Circle%20sort/ Sourceforge]. |
||
<br><br> |
<br><br> |
||
=={{header|11l}}== |
|||
{{trans|Python}} |
|||
<lang 11l>F circle_sort_backend(&A, Int l, r) |
|||
V n = r - l |
|||
I n < 2 |
|||
R 0 |
|||
V swaps = 0 |
|||
V m = n I/ 2 |
|||
L(i) 0 .< m |
|||
I A[r - (i + 1)] < A[l + i] |
|||
swap(&A[r - (i + 1)], &A[l + i]) |
|||
swaps++ |
|||
I (n [&] 1) != 0 & (A[l + m] < A[l + m - 1]) |
|||
swap(&A[l + m - 1], &A[l + m]) |
|||
swaps++ |
|||
R swaps + circle_sort_backend(&A, l, l + m) + circle_sort_backend(&A, l + m, r) |
|||
F circle_sort(&l) |
|||
V swaps = 0 |
|||
V s = 1 |
|||
L s != 0 |
|||
s = circle_sort_backend(&l, 0, l.len) |
|||
swaps += s |
|||
R swaps |
|||
L(i) 309 |
|||
V l = Array(0 .< i) |
|||
V m = copy(l) |
|||
random:shuffle(&l) |
|||
V n = copy(l) |
|||
circle_sort(&l) |
|||
I l != m |
|||
print(l.len) |
|||
print(n) |
|||
print(l)</lang> |
|||
=={{header|AArch64 Assembly}}== |
=={{header|AArch64 Assembly}}== |
||
{{works with|as|Raspberry Pi 3B version Buster 64 bits}} |
{{works with|as|Raspberry Pi 3B version Buster 64 bits}} |
||
Line 284: | Line 321: | ||
Table sorted. |
Table sorted. |
||
</pre> |
</pre> |
||
=={{header|ARM Assembly}}== |
=={{header|ARM Assembly}}== |
||
{{works with|as|Raspberry Pi}} |
{{works with|as|Raspberry Pi}} |