Scala函数式编程

第1关:冒泡排序

import  scala.util.control.Breaks._
object BubbleSort {
      def main(args: Array[String]): Unit = {
 
          val sortArray = Array(49,38,65,97,76,13,27,49,78)
          var exchange = true
         
          //**************Begin************************* 
           for( j <- 0 until( sortArray.length -1)){  
              for(i<- 0 until sortArray.length - 1 -j ){
                  if(sortArray(i) > sortArray(i+1)){
                       val temp = sortArray(i)
                       sortArray(i) = sortArray(i+1)
                       sortArray(i+1) = temp
                  }     
              }
          }
          //**************End**************************
         
        sortArray.foreach(x=> print(x + " "))
    }   
}

第2关:函数排序

object TestSort{
  def main(args:Array[String]){
    val pairs = Array(
      ("Cathy",  100,  110,  108,  78,  95,  89),
      ("Daniel",  110,  98,  110,  80, 94,     88),
      ("Andy",   105,  120,  115, 85,     90,     95) )
    //**************Begin*************************
    //构造新数组(姓名,三科总分,六科总分)
    val  count = Array(
      (pairs{0}._1,pairs{0}._2+pairs{0}._3+pairs{0}._4,
        pairs{0}._2+pairs{0}._3+pairs{0}._4+pairs{0}._5+pairs{0}._6+pairs{0}._7),
      (pairs{1}._1,pairs{1}._2+pairs{1}._3+pairs{1}._4,
        pairs{1}._2+pairs{1}._3+pairs{1}._4+pairs{1}._5+pairs{1}._6+pairs{1}._7),
      (pairs{2}._1,pairs{2}._2+pairs{2}._3+pairs{2}._4,
        pairs{2}._2+pairs{2}._3+pairs{2}._4+pairs{2}._5+pairs{2}._6+pairs{2}._7) )
    //排序
    val b= count.sortWith{
      case (a,b)=>{
        if(a._3==b._3) {//如果总分相等,就按三科降序
          if(a._2==b._2)
            a._1<b._1
          else
            a._2>b._2
        }else {
          a._3>b._3 //否则总分降序
        }
      }
    }
    //**************End**************************
    //打印结果
    b.map(println)
  }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@Anges

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值