We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent afe7bd6 commit 686daf0Copy full SHA for 686daf0
6.Sorting/MergeSort.scala
@@ -1,16 +1,16 @@
1
-def mergeSort(xs :List[Int]): List[Int] = {
+def mergeSort[T](xs :List[T])(lt: (T, T) => Boolean): List[T] = {
2
val n = xs.length
3
if(n <= 1) xs
4
else{
5
val (first, second) = xs.splitAt(n/2)
6
- def merge(xs:List[Int], ys:List[Int]): List[Int] = (xs, ys) match {
+ def merge(xs:List[T], ys:List[T]): List[T] = (xs, ys) match {
7
case (Nil, ys) => ys
8
case (xs, Nil) => xs
9
case (x::xs, y::ys) =>
10
- if (x <= y) x :: merge(xs,y :: ys)
+ if (lt(x, y)) x :: merge(xs,y :: ys)
11
else y :: merge(x::xs, ys)
12
}
13
- merge(mergeSort(first),mergeSort(second))
+ merge(mergeSort(first)(lt),mergeSort(second)(lt))
14
15
16
-println(mergeSort(6::5::4::3::2::1::Nil))
+println(mergeSort(6::5::4::3::2::1::Nil)((a:Int, b:Int)=> a<=b))
0 commit comments