Scala实现冒泡排序、归并排序和快速排序的示例代码
1、冒泡排序
defsort(list:List[Int]):List[Int]=listmatch{ caseList()=>List() casehead::tail=>compute(head,sort(tail)) } defcompute(data:Int,dataSet:List[Int]):List[Int]=dataSetmatch{ caseList()=>List(data) casehead::tail=>if(data<=head)data::dataSetelsehead::compute(data,tail) } defmain(args:Array[String]){ vallist=List(3,12,43,23,7,1,2,0) println(sort(list)) }
2、归并排序
defmergedSort[T](less:(T,T)=>Boolean)(list:List[T]):List[T]={ defmerged(xList:List[T],yList:List[T]):List[T]={ (xList,yList)match{ case(Nil,_)=>yList case(_,Nil)=>xList case(x::xTail,y::yTail)=>{ if(less(x,y))x::merged(xTail,yList) else y::merged(xList,yTail) } } } valn=list.length/2 if(n==0)list else{ val(x,y)=listsplitAtn merged(mergedSort(less)(x),mergedSort(less)(y)) } } defmain(args:Array[String]){ vallist=List(3,12,43,23,7,1,2,0) println(mergedSort((x:Int,y:Int)=>x3、快速排序
defquickSort(list:List[Int]):List[Int]={ listmatch{ caseNil=>Nil caseList()=>List() casehead::tail=> val(left,right)=tail.partition(_以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。