Scala函数式编程 第1关:冒泡排序

任务描述

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

相关知识

    为了完成本关任务,你需要掌握:如何使用scala语言进行冒泡排序。

冒泡排序

    冒泡排序也称为气泡排序,是一种典型的交换排序方法。冒泡排序算法的原理如下: 1、比较相邻的元素。如果第一个比第二个大,就相互交换。 2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。最后的元素应该会是最大的数。 3、针对所有的元素重复以上的步骤,除了最后一个。 4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

Scala版冒泡排序

object BubbleSort {
      def main(args: Array[String]): Unit = {
          val sortArray=Array(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) > sortArra
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值