博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
经典排序算法 - 图书馆排序(Library Sort)
阅读量:7033 次
发布时间:2019-06-28

本文共 616 字,大约阅读时间需要 2 分钟。

经典排序算法 - 图书馆排序(Library Sort)

思路简介,大概意思是说,排列图书时,如果在每本书之间留一定的空隙,那么在进行插入时就有可能会少移动一些书,说白了就是在插入排序的基础上,给书与书之间留一定的空隙,这个空隙越大,需要移动的书就越少,这是它的思路,用空间换时间

看红线标的那句话知道,这个空隙留多大,你自己定

图书馆排序的关键是分配空间,分配完空间后直接使用插入排序即可

进行空间分配的过程

这个我实在是找不到相关的资料,没准就是平均分配嘞

进行插入排序的过程

举例待排数组[ 0 0 6 0 0 2 0 0 4 0 0 1 0 0 5 0 0 9 ],直接对它进行插入排序

第一次移动,直接把2放6前边

[ 0 2 6 0 0 0 0 0 4 0 0 1 0 0 5 0 0 9 ]

第二次移动,先把6往后挪,然后把4放在刚才6的位置,移动了一个位置

[ 0 2 4 6 0 0 0 0 0 0 0 1 0 0 5 0 0 9 ]

第三次移动,直接把1放2前边

[ 1 2 4 6 0 0 0 0 0 0 0 0 0 0 5 0 0 9 ]

第四次移动,再把6往后挪一位,把5放在刚才6的位置

[ 1 2 4 5 6 0 0 0 0 0 0 0 0 0 0 0 0 9 ]

第五次移动后,把9放6后边,排序结束

[ 1 2 4 5 6 9 0 0 0 0 0 0 0 0 0 0 0 0 ]

 

 

reference

转载地址:http://vpyal.baihongyu.com/

你可能感兴趣的文章
主机无法访问虚拟机linux上启动的tomcat服务
查看>>
Android中this、super的区别
查看>>
ibatis log4j 配置 显示sql
查看>>
hadoop-2.3.0-cdh5.1.0完全分布式集群配置及HA配置(待)
查看>>
win7 + vs2013 + libiconv.lib
查看>>
drupal的drupal_register_shutdown_function
查看>>
创建一个多线程的QTcpServer
查看>>
视频取首帧,并保存到SDCard
查看>>
Servlet-获得web.xml配置参数信息
查看>>
Spring初始化容器—实例化bean对象
查看>>
android 自定义系统键盘
查看>>
MySQL 查询优化器(总结)
查看>>
2014年6月28日
查看>>
android读取手机验证码
查看>>
awk 日常实例
查看>>
Python直接赋值、浅拷贝和深度拷贝解析
查看>>
何时进行重构?
查看>>
centos6.2x64系统配置本地yum源
查看>>
Java Strategy 模式简介
查看>>
CDH-cdh5.8.3离线安装--Mysql5.7二进制部署
查看>>