Sorting algorithms/Bogosort: Difference between revisions
Content added Content deleted
(Added solution for Action!) |
|||
Line 218: | Line 218: | ||
.include "../includeARM64.inc" |
.include "../includeARM64.inc" |
||
</lang> |
</lang> |
||
=={{header|Action!}}== |
|||
<lang Action!>PROC PrintArray(INT ARRAY a INT size) |
|||
INT i |
|||
Put('[) |
|||
FOR i=0 TO size-1 |
|||
DO |
|||
IF i>0 THEN Put(' ) FI |
|||
PrintI(a(i)) |
|||
OD |
|||
Put(']) PutE() |
|||
RETURN |
|||
PROC KnuthShuffle(INT ARRAY tab BYTE size) |
|||
BYTE i,j |
|||
INT tmp |
|||
i=size-1 |
|||
WHILE i>0 |
|||
DO |
|||
j=Rand(i+1) |
|||
tmp=tab(i) |
|||
tab(i)=tab(j) |
|||
tab(j)=tmp |
|||
i==-1 |
|||
OD |
|||
RETURN |
|||
BYTE FUNC IsSorted(INT ARRAY tab BYTE size) |
|||
BYTE i |
|||
IF size<2 THEN |
|||
RETURN (1) |
|||
FI |
|||
FOR i=0 TO size-2 |
|||
DO |
|||
IF tab(i)>tab(i+1) THEN |
|||
RETURN (0) |
|||
FI |
|||
OD |
|||
RETURN (1) |
|||
PROC BogoSort(INT ARRAY a INT size) |
|||
WHILE IsSorted(a,size)=0 |
|||
DO |
|||
KnuthShuffle(a,size) |
|||
OD |
|||
RETURN |
|||
PROC Test(INT ARRAY a INT size) |
|||
PrintE("Array before sort:") |
|||
PrintArray(a,size) |
|||
BogoSort(a,size) |
|||
PrintE("Array after sort:") |
|||
PrintArray(a,size) |
|||
PutE() |
|||
RETURN |
|||
PROC Main() |
|||
INT ARRAY |
|||
a(10)=[1 4 65535 0 7 4 20 65530], |
|||
b(21)=[3 2 1 0 65535 65534 65533], |
|||
c(8)=[101 102 103 104 105 106 107 108], |
|||
d(12)=[1 65535 1 65535 1 65535 1 |
|||
65535 1 65535 1 65535] |
|||
Test(a,8) |
|||
Test(b,7) |
|||
Test(c,8) |
|||
Test(d,12) |
|||
RETURN</lang> |
|||
{{out}} |
|||
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Bogosort.png Screenshot from Atari 8-bit computer] |
|||
<pre> |
|||
Array before sort: |
|||
[1 4 -1 0 7 4 20 -6] |
|||
Array after sort: |
|||
[-6 -1 0 1 4 4 7 20] |
|||
Array before sort: |
|||
[3 2 1 0 -1 -2 -3] |
|||
Array after sort: |
|||
[-3 -2 -1 0 1 2 3] |
|||
Array before sort: |
|||
[101 102 103 104 105 106 107 108] |
|||
Array after sort: |
|||
[101 102 103 104 105 106 107 108] |
|||
Array before sort: |
|||
[1 -1 1 -1 1 -1 1 -1 1 -1 1 -1] |
|||
Array after sort: |
|||
[-1 -1 -1 -1 -1 -1 1 1 1 1 1 1] |
|||
</pre> |
|||
=={{header|ActionScript}}== |
=={{header|ActionScript}}== |