
scala数据结构和算法
本专栏用scala实现各种数据结构和算法,包括用java实现的各种经典算法,排序,树,图,高级数据结构等
hxpjava1
毕业于武汉理工大学计算机系,12年开发架构经验,擅长java,k8s
展开
-
scala数据结构和算法-10-计数排序
计数排序的思想是对每一个输入元素x,确定出小于x的元素个数,有了这一信息,就可以把x直接放在它在最终输出数组的位置上,例如,如果有17个元素小于x,则x就是属于第18个输出位置。当几个元素相同是,方案要略作修改。package dataimport scala.collection.mutable.ArrayBufferobject CountSort { def countSor原创 2017-01-04 10:33:57 · 784 阅读 · 0 评论 -
scala数据结构和算法-09-基于插入排序的基数排序
基数排序是另外一种比较有特色的排序方式,它是怎么排序的呢?我们可以按照下面的一组数字做出说明:12、 104、 13、 7、 9 (1)按个位数排序是12、13、104、7、9 (2)再根据十位排序104、7、9、12、13 (3)再根据百位排序7、9、12、13、104package dataimport scala.collection原创 2017-01-04 09:44:00 · 827 阅读 · 0 评论 -
scala数据结构和算法-08-堆排序
二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆。当父结点的键值总是小于或等于任何一个子节点的键值时为最小堆。下图展示一个最小堆:由于其它几种堆(二项式堆,斐波纳契堆等)用的较少,一般将二叉堆就简称原创 2017-01-03 16:45:07 · 1275 阅读 · 0 评论 -
scala数据结构和算法-07-希尔排序
把记录按步长gap分组,对每组记录采用直接插入排序方法进行排序。随着步长逐渐减小,所分成的组包含的记录越来越多,当步长的值减小到1时,整个数据合成为一组,构成一组有序记录,则完成排序。我们来通过演示图,更深入的理解一下这个过程。package dataimport scala.collection.mutable.ListBufferobject Sh原创 2017-01-03 14:59:33 · 788 阅读 · 0 评论 -
scala数据结构与算法-06-选择排序
package dataimport scala.collection.mutable.ListBufferobject SelectSort { def selectSort[T](comparator:(T,T)=>Boolean)(source:ListBuffer[T]):ListBuffer[T]={ for(i<-0 until source.length){原创 2017-01-03 14:17:50 · 742 阅读 · 0 评论 -
scala数据结构和算法-05-插入排序实现
package dataimport scala.collection.mutable.ListBufferobject InsertSort { def insertSort[T<%Ordered[T]](source:ListBuffer[T]):ListBuffer[T]={ for(i<-1 until source.length){ for(j<-(1 t原创 2017-01-03 13:50:13 · 831 阅读 · 0 评论 -
scala数据结构和算法-04-快速排序实现
package dataimport scala.collection.mutable.ListBufferimport scala.collection.mutable.ListBufferobject QuickSort { def quickSort[T<% Ordered[T]](source:ListBuffer[T],left:Int,right:Int):List原创 2017-01-03 13:19:23 · 620 阅读 · 0 评论 -
scala数据结构和算法-03-冒泡排序实现
package dataimport scala.collection.mutable.ListBufferimport scala.collection.mutable.ListBufferobject BubbleSort { def bubbleSort[T<%Ordered[T]](source:ListBuffer[T]):ListBuffer[T]={ for(i原创 2017-01-03 11:00:37 · 730 阅读 · 0 评论 -
scala数据结构和算法-01-用scala实现合并排序
package dataimport scala.collection.mutable.ListBufferimport scala.util.control.Breaksobject MergeSort { def mergeSort[T](compatator:(T,T)=>Boolean)(source:List[T]):List[T]={ if(source.leng原创 2016-12-30 21:20:47 · 966 阅读 · 0 评论 -
scala数据结构和算法-02-用模式匹配实现合并排序
package dataobject 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原创 2016-12-31 11:38:31 · 559 阅读 · 0 评论