scala数据结构和算法-07-希尔排序
来源:互联网 发布:高仿鞋淘宝上怎么找 编辑:程序博客网 时间:2024/06/05 10:43
把记录按步长 gap 分组,对每组记录采用直接插入排序方法进行排序。
随着步长逐渐减小,所分成的组包含的记录越来越多,当步长的值减小到 1 时,整个数据合成为一组,构成一组有序记录,则完成排序。
我们来通过演示图,更深入的理解一下这个过程。
package dataimport scala.collection.mutable.ListBufferobject ShellSort { def shellSort[T](comparator:(T,T)=>Boolean)(source:ListBuffer[T]):ListBuffer[T]={ var span=source.length/2; while(span>0){ for(i<-span until (source.length,span)){ for(j<-(span to (i,span)).reverse){ val current=source(j); val prev=source(j-span); if(comparator(current,prev)){ source(j-span)=current; source(j)=prev; } } } span=span/2; } source } def main(args: Array[String]): Unit = { val source=ListBuffer(1,4,3,9,2,8,6,7) println(shellSort[Int](_<_)(source).mkString(",")); }}
0 0
- scala数据结构和算法-07-希尔排序
- [数据结构和算法]希尔排序
- scala 排序算法 希尔排序
- 【数据结构和算法12】希尔排序
- java数据结构和算法-3,希尔排序
- 【数据结构和算法】排序算法之四:希尔排序
- 数据结构-排序算法-希尔排序
- scala数据结构和算法-08-堆排序
- scala数据结构和算法-10-计数排序
- 数据结构与算法——插入排序和希尔排序
- 数据结构精要------直接插入排序和希尔排序算法
- 算法和数据结构-排序-希尔排序(Java)
- Java数据结构和算法-高级排序(1-希尔排序)
- scala数据结构和算法-01-用scala实现合并排序
- 【scala 数据结构和算法】Scala实现:冒泡排序
- 【scala 数据结构和算法】Scala实现:快速排序
- 【scala 数据结构和算法】Scala实现:归并排序
- 【数据结构与算法】希尔排序
- JDK1.5-1.8的区别
- Linux Core Dump
- 调试的时候,调试页面的配置
- 微信公众平台授权登录
- 使用属性position:fixed的时候如何才能让div居中
- scala数据结构和算法-07-希尔排序
- JSP、Servlet中的相对路径和绝对路径 页面跳转问题
- 1月1日 MyBatis创建+增删改+Kruskal算法
- 安卓常用资源地址整合
- MySQL——MyISAM表级锁
- Regular Expression Matching
- 计算机之旅(just for fun)(未完)
- 线性回归
- RPC是什么