scala函数式编程 educoder
第一关:冒泡排序
本关任务:本关主题是利用Scala基础实现对冒泡排序算法的改进。使用冒泡算法存在这样一种情况:在第j(j<n-1)趟时就已排好序,但算法仍然执行后面几趟的比较。实际上,一旦算法中某一趟比较时没有任何元素交换,说明已经排好序了,就可以结束算法。现有9个随机数:[49,38,65,97,76,13,27,49,78]
请改进冒泡排序算法,避免序列在已经排好的情况下继续进行冒泡的操作。
-
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
-
}
-
}
第二关:函数排序
本关任务:本关主题是利用Scala函数式编程中已经实现的排序函数实现相关的排序需求。在一次考试中,Cathy、Daniel和Andy的成绩如下:
-
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)
-
}
-
}
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgabeca
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01