sort编程课程 华中数控车r刀怎么编程?

[更新]
·
·
分类:互联网
4009 阅读

sort编程课程

华中数控车r刀怎么编程?

华中数控车r刀怎么编程?

objectMainextendsApp{
varreverse_pairs 0//逆序数
defmsort[T](cmp:(T, T) gt Boolean)(l:List[T]):List[T] {
defmerge(l1:List[T], l2:List[T]):List[T](l1, l2)match{
case(Nil, _) gt l2
case(_, Nil) gt l1
case(x::left1, y::left2) gt
if(cmp(x, y))
x::merge(left1, l2)
else{
reverse_pairs l1.length
y::merge(l1, left2)
}
}
valn l.length / 2
if(n 0)
return l
else{
val(l1, l2) l.splitAt(n)
merge(msort(cmp)(l1), msort(cmp)(l2))
}
}
println(msort((x:Int, y:Int) gt xlty)(List(5, 4, 3, 2, 7,6 )))
println(reverse_pairs)
}

除了冒泡排序,还有哪些适合初级程序员学习的排序算法?

排序看情况,比如1到10个乱顺序数,定义一个带10个元素临时数组,把相应的值写入相应的元素中,这种方法只需要一次就解决了,再比如50个乱数,其中最大是100,也可以创建下标100的数组,循环原数组把相应的值写到相应的元素中,也只需要一次,然后把没赋过值的删除,我曾经试过用8w个数组做实验,这个方法比冒泡快很多