scala数据结构和算法-04-快速排序实现
来源:互联网 发布:怎么创建app软件 编辑:程序博客网 时间:2024/06/05 10:21
package dataimport scala.collection.mutable.ListBufferimport scala.collection.mutable.ListBufferobject QuickSort { def quickSort[T<% Ordered[T]](source:ListBuffer[T],left:Int,right:Int):ListBuffer[T]={ if(left==right)ListBuffer() else{ val index=partition(source,left,right) if(left==index){ if(right-index>=2){ quickSort(source,index+1,right) } }else if(right==index){ if(index-left>=2){ quickSort(source,left,index-1) } }else{ if(index-left>=2){ quickSort(source,left,index-1) } if(right-index>=2){ quickSort(source,index+1,right) } } source } } def partition[T<%Ordered[T]](source:ListBuffer[T],left:Int,right:Int):Int={ val cmp=source(left) var leftIndex=left var rightIndex=right var direction=true; while(leftIndex<rightIndex){ if(direction){ if(source(rightIndex)<cmp){ source(leftIndex)=source(rightIndex); leftIndex+=1; direction=(!direction); }else{ if(leftIndex<rightIndex){ rightIndex-=1; } } } if(!direction){ if(source(leftIndex)>=cmp){ source(rightIndex)=source(leftIndex) rightIndex-=1 direction=(!direction); }else{ if(leftIndex<rightIndex){ leftIndex+=1; } } } } source(leftIndex)=cmp; leftIndex } def main(args: Array[String]): Unit = { val source=ListBuffer(1,3,7,5,4,15,3,9,6,8,33,12,14,12,17,16,18); println(quickSort(source,0,source.length-1).mkString(",")) }}
0 0
- scala数据结构和算法-04-快速排序实现
- 【scala 数据结构和算法】Scala实现:快速排序
- scala数据结构和算法-01-用scala实现合并排序
- 【scala 数据结构和算法】Scala实现:冒泡排序
- 【scala 数据结构和算法】Scala实现:归并排序
- scala数据结构和算法-03-冒泡排序实现
- scala数据结构和算法-05-插入排序实现
- scala数据结构和算法-07-希尔排序
- scala数据结构和算法-08-堆排序
- scala数据结构和算法-10-计数排序
- [数据结构和算法]快速排序
- Scala快速排序算法
- T-SQL实现数据结构中的冒泡算法和快速排序
- 快速排序的Java和Scala实现
- 快速排序:Scala实现
- Scala实现快速排序
- 【数据结构和算法之排序】快速排序
- scala 排序算法 快速排序
- [Qt配置指南—2]Qt 5.4.2 Configure Options---Qt配置选项使用
- MSSQL 2008 R2 viewinfo(microsoft.sqlserver.management.sqlstudio.explorer)
- java集合笔记
- 垃圾回收算法
- 一个可扩展的下方是导航条,上方是Fragment的UI框架
- scala数据结构和算法-04-快速排序实现
- 程序设计二 歌手大奖赛积分
- 什么是*args和**kwargs?
- hibernate分页查询
- C++ vector用法
- 01_一个程序的解释
- Linux下的定时器
- tomcat目录下的startup.sh和catalina.sh区别
- App Transport Security Settings----xcode https协议