温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Scala中怎么实现数组排序

发布时间:2021-08-09 15:00:48 来源:亿速云 阅读:234 作者:Leah 栏目:编程语言

这期内容当中小编将会给大家带来有关Scala中怎么实现数组排序,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

Scala数组排序实现代码

/**   * 快速排序的例子2   * @author VWPOLO   * < p>2009-8-12< /p>   */ object TestQuickSort2 {    def main(args : Array[String]) : Unit = {      var arrays = Array(123,343,5435,23,3213);      Console.println("排序前的结果");      arrays.foreach((array: Int ) => println(array))      arrays = sort(arrays);      Console.println("排序后的结果");      arrays.foreach((array: Int ) => println(array))    }        def sort(xs: Array[Int]):Array[Int] = {      if(xs.length < = 1)        xs;      else {        val pivot = xs(xs.length /2);        Array.concat(            sort(xs filter (pivot >)),                 xs filter (pivot ==),            sort(xs filter (pivot < ))        )      }    }  }

Scala数组排序快速实现代码点评

sort(Array[Int])方法通过简明的方式完成了传统的快速排序功能:

1、判断参数数组是否为空?如果为空说明排序完成,直接方法参数。

2、如果给定的参数数字不为空,取得数组的中间数。

3、根据中间数对参数数组进行拆分,通过调用Array的filter(p: A => Boolean)方法对数组进行分区并生成一个新的数组,"xs filter (pivot >)" 生成一个新的数组只包含小于pivot的数字,"xs filter (pivot ==)"里面的数组只包含等于pivot的数组,"xs filter (pivot < )"则包含大于pivot的数字,通过sort方法的迭代,完成了排序过程。

4、通过Array.concat方法合并多个数组,返回排序后的结果就行了。

sort方法指定了返回值但是方法块中没有"return" 语言,其实加不加都无所谓,Scala编译器可以自动进行判断。

Scala数组排序的优点

这种方式和传统的快速排序方法在时间复杂度和空间复杂度相似,但是代码却大大的简化了,不信你用Java写一个对数字数组快速的排序方法(要自己写,使用Collections.sort(List< T>)方法可不算啊)。

上述就是小编为大家分享的Scala中怎么实现数组排序了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI