Red de conocimiento informático - Aprendizaje de código fuente - Cómo programar la caja registradora electrónica Yibiyou

Cómo programar la caja registradora electrónica Yibiyou

objectMainextendsApp{

varreverse_pairs = 0//número inverso

defmsort[T](cmp:(T, T) => Boolean)(l:List [T]):Lista[T] = {

defmerge(l1:Lista[T], l2:Lista[T]):Lista[T]=(l1, l2)match{

case(Nil, _) => l2

case(_, Nil) => l1

case(x::left1, y::left2) =>

if(cmp(x, y))

x::merge(left1, l2)

else{

pares_inversos + = l1.longitud

y::merge(l1, left2)

}

}

valn = l.longitud / 2

if(n == 0)

return l

else{

val(l1, l2) = l.splitAt( n)

fusionar(msort(cmp)(l1), msort(cmp)(l2))

}

}

println(msort((x:Int, y:Int) => x

println(reverse_pairs)

}