package com.yl.Scala object sortList { def main(args: Array[String]){ def combineSort[T] (less: (T, T) => Boolean) (input: List[T]): List[T] = { /** * @param xList 要合并的有序列表 * @param yList 要合并的有序列表 * @return 合并后的列表 */ def combine(xList : List[T], yList : List[T]): List[T] = (xList, yList) match{ case(Nil, _) => yList case(_, Nil) => xList case(x::xtail, y::ytail) => if(less(x, y)) x :: combine(xtail, yList) else y :: combine(xList, ytail) } val n = input.length / 2 if (n == 0) input else{ val(x, y) = input splitAt n //将要排序的列表平均分成两部分 combine(combineSort(less)(x), combineSort(less)(y)) //先对两个列表归并排序,然后再将有序表进行归并 } } //从小到大排序, x < y println(combineSort((x: Int, y: Int) => x < y) (List(3,4,2,6,45,5,56,7))) //从大到小排序, x > y println(combineSort((x: Int, y: Int) => x > y) (List(3,4,2,6,45,5,56,7))) } }
详细解决方案
Scala 【List的高效排序】
热度:44 发布时间:2024-02-12 20:18:05.0
相关解决方案
- request.setAttribute("list" "''");该怎么解决
- Hibernate 的query.list()的有关问题
- List 的removeAll方法如何用
- 关于在struts2中怎么将.action加入到web.xml中的<welcome-file-list>上 急
- 在JSP中,List<String> str_list这个集合如何遍历呢
- hibernate Query.createQuery(queryString).list();查询最大只有1000条数据,该怎么处理
- 设计可组建的j2me UI(五) List
- JAVA List<Map<String,String>> 排序解决思路
- 关于java List Map方面的简单有关问题
- List<String>取值为什么带“[]”了?解决思路
- Unknown table 'book' in field list
- List<Object> list=new ArrayList<String>()异常
- List<User> userList = new ArrayList<User>();解决思路
- List list = new ArrayList(); 是什么意思?解决思路
- List Control 或者Listbox 中重绘的有关问题
- List Control 报错解决办法
- list<t>解决方法
- List<Translating_model>条件查寻
- List<>问题
- list 便利如何放进string[] 里
- [紧急求答]list.sort排序有关问题 进来看看把
- 没法将类型“System.Data.DataSet”隐式转换为“System.Collections.Generic.List
- list 交换位置,该怎么处理
- List<string>有关问题,求解啊
- list<class>作为gridview数据源时怎么让gridview的首列数据以链接的形式显示呢
- List<double>找到其最大值的索引!解决办法
- "List 类既使用相等比较器又使用排序比较器"这里的相等比较器和排序比较器是什么概念啊该怎么解决
- List<List<string>> 如何取出里面的string型的值
- 懂VB翻译下这句话什么意思:Private _List As List(Of TabularView),该如何处理
- 问一个小弱的有关问题阿:List<T>