Sorting algorithms/Bogosort: Difference between revisions

Content added Content deleted
(add m4)
m (→‎{{header|R}}: Code tidied)
Line 910: Line 910:


=={{header|R}}==
=={{header|R}}==
<lang R>is.sorted <- function(v) {
<lang R>
bogosort <- function(x)
for(a in 1:(length(v)-1)) {
{
if ( !all(v[a] <= v[(a+1):length(v)]) ) return(FALSE)
is.sorted <- function(x) all(diff(x) >= 0)
}
while(!is.sorted(x)) x <- sample(x)
TRUE
x
}

shuffle <- function(v) {
l <- length(v)
for(i in 1:l) {
t <- v[i]
r <- floor(runif(1, 1, l+1))
v[i] <- v[r]
v[r] <- t
}
v
}

bogosort <- function(v) {
while( ! is.sorted(v) ) {
v <- shuffle(v)
}
v
}
}