Skip to content

Commit 01d67ed

Browse files
committed
Add bogosort in Scala
1 parent d289031 commit 01d67ed

File tree

2 files changed

+27
-2
lines changed

2 files changed

+27
-2
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3248,8 +3248,8 @@ In order to achieve greater coverage and encourage more people to contribute to
32483248
</a>
32493249
</td>
32503250
<td> <!-- Scala -->
3251-
<a href="./CONTRIBUTING.md">
3252-
<img align="center" height="25" src="./logos/github.svg" />
3251+
<a href="./src/scala/Bogosort.scala">
3252+
<img align="center" height="25" src="./logos/scala.svg" />
32533253
</a>
32543254
</td>
32553255
<td> <!-- Kotlin -->

src/scala/Bogosort.scala

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import scala.annotation.tailrec
2+
import scala.util.Random
3+
4+
5+
@tailrec
6+
def isSorted(data: Seq[Int]): Boolean = {
7+
if (data.size < 2) true
8+
else if (data(0) > data(1)) false
9+
else isSorted(data.tail)
10+
}
11+
12+
13+
@tailrec
14+
def bogosort(data: Seq[Int]): Seq[Int] = {
15+
val result: Seq[Int] = Random.shuffle(data)
16+
if (isSorted(result)) result
17+
else bogosort(data)
18+
}
19+
20+
21+
object Main extends App {
22+
val data: Seq[Int] = Seq.fill(10)(Random.nextInt(10))
23+
println(s"Unsorted data: $data")
24+
println(s"Sorted data: ${bogosort(data)}")
25+
}

0 commit comments

Comments
 (0)