• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

scala函数式编程 educoder

武飞扬头像
南风不竞呀
帮助1

第一关:冒泡排序

本关任务:本关主题是利用Scala基础实现对冒泡排序算法的改进。使用冒泡算法存在这样一种情况:在第j(j<n-1)趟时就已排好序,但算法仍然执行后面几趟的比较。实际上,一旦算法中某一趟比较时没有任何元素交换,说明已经排好序了,就可以结束算法。现有9个随机数:[49,38,65,97,76,13,27,49,78]

    请改进冒泡排序算法,避免序列在已经排好的情况下继续进行冒泡的操作。

  1.  
    for( j <- 0 until( sortArray.length -1)){
  2.  
    for(i<- 0 until sortArray.length - 1 -j ){// 对每个外循环和进行多次内循环
  3.  
    if(sortArray(i) > sortArray(i 1)){
  4.  
    val temp = sortArray(i)
  5.  
    sortArray(i) = sortArray(i 1)
  6.  
    sortArray(i 1) = temp
  7.  
    }
  8.  
    }

第二关:函数排序

本关任务:本关主题是利用Scala函数式编程中已经实现的排序函数实现相关的排序需求。在一次考试中,Cathy、Daniel和Andy的成绩如下:

  1.  
    object TestSort{
  2.  
    def main(args:Array[String]){
  3.  
    val pairs = Array(
  4.  
    ("Cathy", 100, 110, 108, 78, 95, 89),
  5.  
    ("Daniel", 110, 98, 110, 80, 94, 88),
  6.  
    ("Andy", 105, 120, 115, 85, 90, 95) )
  7.  
    //**************Begin*************************
  8.  
    //构造新数组(姓名,三科总分,六科总分)
  9.  
    val count = Array(
  10.  
    (pairs{0}._1,pairs{0}._2 pairs{0}._3 pairs{0}._4,
  11.  
    pairs{0}._2 pairs{0}._3 pairs{0}._4 pairs{0}._5 pairs{0}._6 pairs{0}._7),
  12.  
    (pairs{1}._1,pairs{1}._2 pairs{1}._3 pairs{1}._4,
  13.  
    pairs{1}._2 pairs{1}._3 pairs{1}._4 pairs{1}._5 pairs{1}._6 pairs{1}._7),
  14.  
    (pairs{2}._1,pairs{2}._2 pairs{2}._3 pairs{2}._4,
  15.  
    pairs{2}._2 pairs{2}._3 pairs{2}._4 pairs{2}._5 pairs{2}._6 pairs{2}._7) )
  16.  
    //排序
  17.  
    val b= count.sortWith{
  18.  
    case (a,b)=>{
  19.  
    if(a._3==b._3) {//如果总分相等,就按三科降序
  20.  
    if(a._2==b._2)
  21.  
    a._1<b._1
  22.  
    else
  23.  
    a._2>b._2
  24.  
    }else {
  25.  
    a._3>b._3 //否则总分降序
  26.  
    }
  27.  
    }
  28.  
    }
  29.  
    //**************End**************************
  30.  
    //打印结果
  31.  
    b.map(println)
  32.  
    }
  33.  
    }
学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgabeca
系列文章
更多 icon
同类精品
更多 icon
继续加载