Skip to content

Commit 09e5b96

Browse files
jaoelleios
authored andcommitted
Add bogo sort in scala (#540)
1 parent 3679668 commit 09e5b96

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

contents/bogo_sort/bogo_sort.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ In code, it looks something like this:
6565
[import:10-14, lang:"crystal"](code/crystal/bogo.cr)
6666
{% sample lang="r" %}
6767
[import:1-6, lang:"r"](code/r/bogo_sort.r)
68+
{% sample lang="scala" %}
69+
[import:12-16, lang:"scala"](code/scala/bogo.scala)
6870
{% sample lang="go" %}
6971
[import:27-31, lang:"go"](code/go/bogo_sort.go)
7072
{% endmethod %}
@@ -131,6 +133,8 @@ We are done here!
131133
[import, lang:"crystal"](code/crystal/bogo.cr)
132134
{% sample lang="r" %}
133135
[import, lang:"r"](code/r/bogo_sort.r)
136+
{% sample lang="scala" %}
137+
[import, lang:"scala"](code/scala/bogo.scala)
134138
{% sample lang="go" %}
135139
[import, lang:"go"](code/go/bogo_sort.go)
136140
{% endmethod %}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import scala.util.Random.shuffle
2+
3+
object BogoSort {
4+
5+
def isSorted(list: List[Int]): Boolean =
6+
list match {
7+
case Nil => true
8+
case a :: b :: _ if a > b => false
9+
case _ :: tail => isSorted(tail)
10+
}
11+
12+
def bogoSort(list: List[Int]): List[Int] =
13+
isSorted(list) match {
14+
case false => bogoSort(shuffle(list))
15+
case _ => list
16+
}
17+
18+
def main(args: Array[String]): Unit = {
19+
val unsorted = List(5, 2, 7, 1, -5)
20+
21+
println("Unsorted list is " + unsorted)
22+
println(" Sorted list is " + bogoSort(unsorted))
23+
}
24+
25+
}

0 commit comments

Comments
 (0)