用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - scala代码库

scala 冒泡排序算法

2012-10-12 作者:神马举报

[scala]代码库

case class BubbleSort[T<%Ordered[T]](val array:Array[T]){
  private[this] var lastIndex = array.length-1
  private[this] var notFinish = false
  private[this] def sortFromIndex(index:Int):Unit= index match {
    case last if last==lastIndex => if(lastIndex>1 && notFinish){
      lastIndex=lastIndex-1
      notFinish=false
      sortFromIndex(0)
    }
    case otherIndex => {
      if(array(otherIndex)>array(otherIndex+1)) swap(otherIndex, otherIndex+1)
      sortFromIndex(otherIndex+1)
    }
  }
  private[this] def swap(index:Int, nextIndex:Int) = {
    val temp = array(nextIndex)
    array(nextIndex)=array(index)
    array(index)=temp
  }
  def bubbleSort=sortFromIndex(0)
}
object BubbleSort{
  implicit def arrToBubbleSort[T <% Ordered[T]](arr:Array[T]):BubbleSort[T]=BubbleSort(arr)
}


分享到:
更多

网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。