Sorting algorithms/Bogosort: Difference between revisions

Content added Content deleted
m (→‎{{header|Haskell}}: don't need another case)
(Added Kotlin)
Line 1,121: Line 1,121:
After bogosort:
After bogosort:
[-10,-7,-6,-6,-4,4,5,7,8,10]
[-10,-7,-6,-6,-4,4,5,7,8,10]
</pre>

=={{header|Kotlin}}==
{{trans|C}}
<lang scala>// version 1.1.1

const val RAND_MAX = 32768 // big enough for this

val rand = java.util.Random()

fun isSorted(a: IntArray): Boolean {
val n = a.size
if (n < 2) return true
for (i in 1 until n) {
if (a[i] < a[i - 1]) return false
}
return true
}

fun shuffle(a: IntArray) {
val n = a.size
if (n < 2) return
for (i in 0 until n) {
val t = a[i]
val r = rand.nextInt(RAND_MAX) % n
a[i] = a[r]
a[r] = t
}
}

fun bogosort(a: IntArray) {
while (!isSorted(a)) shuffle(a)
}

fun main(args: Array<String>) {
val a = intArrayOf(1, 10, 9, 7, 3, 0)
println("Before sorting : ${a.contentToString()}")
bogosort(a)
println("After sorting : ${a.contentToString()}")
}</lang>

{{out}}
<pre>
Before sorting : [1, 10, 9, 7, 3, 0]
After sorting : [0, 1, 3, 7, 9, 10]
</pre>
</pre>