scala数据结构和算法-02-用模式匹配实现合并排序
2016-12-31 11:38
369 查看
package data object MergeSortUsePattern { def mergeSort[T](compatator:(T,T)=>Boolean)(source:List[T]):List[T]={ source match{ case list if (list.length==0)=>return List() case list if(list.length==1)=>return list; case _=> } val (left,right)=source.splitAt(source.length/2); merge(compatator)(mergeSort(compatator)(left),mergeSort(compatator)(right)); } def merge[T](compatator:(T,T)=>Boolean)(left:List[T],right:List[T]):List[T]={ (left,right)match{ case (Nil,list)=>return list; case (list,Nil)=>return list; case (left,right)=>{ if(compatator(left(0),right(0))){ return left(0)::merge(compatator)(left.slice(1, left.length),right); }else{ return right(0)::merge(compatator)(left,right.slice(1, right.length)) } } } } def main(args: Array[String]): Unit = { val source=List(1,3,9,8,4,7,5,6) println(mergeSort[Int]((x,y)=>{ if (x<y) true else false})(source)) } }
相关文章推荐
- scala数据结构和算法-03-冒泡排序实现
- 数据结构(基于python实现)02-算法复杂度分析
- scala数据结构和算法-05-插入排序实现
- scala数据结构和算法-01-用scala实现合并排序
- [置顶] 【scala 数据结构和算法】Scala实现:冒泡排序
- scala数据结构和算法-04-快速排序实现
- [置顶] 【scala 数据结构和算法】Scala实现:快速排序
- [置顶] 【scala 数据结构和算法】Scala实现:归并排序
- 数据结构各种算法实现C++
- 合并排序 算法实现
- 数据结构经典算法汇总___图的邻接表实现
- 数据结构与算法——三种基础排序算法C#实现(冒泡排序、选择排序、插入排序)
- 算法与数据结构课程中的c++实现的顺序表和链表
- 基于左右值的无限级分类算法-oracle实现--02
- 数据结构常用算法实现print
- Clojure:算法练习的实现(一)——合并排序
- Clojure:算法练习的实现(二)——合并排序
- 数据结构和算法设计(迷宫求解问题的栈和队列的实现)
- 数据结构—中缀表达式转后缀表达式算法及实现—栈的应用—计算表达式(C++代码实现)(1)
- 严蔚敏《数据结构》中迷宫算法java实现