Sorting algorithms/Bogosort: Difference between revisions
Content added Content deleted
m (→{{header|J}}: Add lang tags) |
m (Fixed lang tags.) |
||
Line 117:
{{works with|ELLA ALGOL 68|Any (with appropriate job cards) - tested with release 1.8.8d.fc9.i386}}
<lang
PROC random shuffle = (REF[]TYPE l)VOID: (
Line 347:
We use seq-utils' shuffle, which initializes a Java ArrayList with the input sequence, shuffle it, and then return a sequence of the result.
<lang lisp>(use 'clojure.contrib.seq-utils)▼
▲(use 'clojure.contrib.seq-utils)
(defn in-order? [cmp xs]
Line 358 ⟶ 357:
(defn bogosort [cmp xs]
(if (in-order? cmp xs) xs
(recur cmp (shuffle xs))))</lang>
</lang>▼
=={{header|Common Lisp}}==
Line 436 ⟶ 434:
=={{header|Fortran}}==
{{works with|Fortran|90 and later}}
<lang fortran>
DO i = SIZE(a), 1, -1
a(i) = temp
END DO▼
▲ Sorted = .TRUE.
▲ Sorted = .FALSE.
iter = iter +
▲ END DO
▲ END FUNCTION Sorted
▲ SUBROUTINE SHUFFLE(a)
▲ INTEGER, INTENT(IN OUT) :: a(:)
▲ INTEGER :: i, rand, temp
▲ REAL :: x
▲ DO i = SIZE(a), 1, -1
▲ CALL RANDOM_NUMBER(x)
▲ rand = INT(x * i) + 1
▲ temp = a(rand)
▲ a(rand) = a(i)
▲ a(i) = temp
▲ END DO
▲ END SUBROUTINE
▲ END MODULE
▲ PROGRAM BOGOSORT
▲ USE BOGO
▲ IMPLICIT NONE
▲ INTEGER :: iter = 0
▲ INTEGER :: array(8) = (/2, 7, 5, 3, 4, 8, 6, 1/)
▲ LOGICAL :: s
▲ DO
▲ IF (s) EXIT
▲ CALL SHUFFLE(array)
▲ END DO
▲ WRITE (*,*) "Array required", iter, " shuffles to sort"
▲ END PROGRAM BOGOSORT</lang>
=={{header|Groovy}}==
Line 543 ⟶ 541:
=={{header|Icon}}==
=={{header|J}}==
<lang j>bogo=: monad define
whilst. -. *./ 2 </\ Ry do. Ry=. (A.~ ?@!@#) y end. Ry
▲)</lang>
=={{header|Java}}==
Line 616 ⟶ 613:
}
return v;
}
=={{header|Lua}}==
Line 647 ⟶ 644:
=={{header|M4}}==
<lang M4>divert(-1)
define(`randSeed',141592653)
define(`setRand',
Line 687 ⟶ 683:
show(`b')
bogosort(`b')
show(`b')</lang>
=={{header|MAXScript}}==
<
(
if arr.count > 0 then
Line 726 ⟶ 721:
)
arr
)</
=={{header|Modula-3}}==
Line 957 ⟶ 952:
=={{header|R}}==
<lang R>bogosort <- function(x)
{
is.sorted <- function(x) all(diff(x) >= 0)
Line 1,056 ⟶ 1,050:
=={{header|Ursala}}==
<lang Ursala>#import std
#import nat
|