ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: mjzxlmg

[已解决] 帮忙做个各科成绩快速排名方法?

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-3-11 10:45 | 显示全部楼层
我看了一下,不知如何理解希尔排序。楼主可否普及这方面的知识。

TA的精华主题

TA的得分主题

发表于 2011-3-11 19:20 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 cbtaja 于 2011-3-11 09:13 发表
我看了一下,觉得理解希尔排序还很难的。
我这样来理解,通过一组预定的界点值,把要排序的数据分段归类,这样可以用相对较少的对比次数就能把每个值送到到它最后位置所最靠近的界点,而在这些限定的每一个比较“狭 ...


是的,这个理解是正确的

希尔排序其实就是N次 分组插入排序 的总和,其最后一次希尔排序完全就是插入排序,理解了插入排序也就理解希尔排序了

希尔排序的高效是因为每次比较的时候(除了最后一遍),数据都“跳跃”许多步(步距等于h序列的h值)

所以能够大大减少每个数据到达最终位置的比较次数

可以看作每一遍希尔排序都对后续的希尔排序做了“优化”

当然,每次希尔排序的跳跃距离是多少,这是个关键问题,选择不同的h序列,会导致排序速度大大不同。

TA的精华主题

TA的得分主题

发表于 2011-3-12 20:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

回复 42楼 灰袍法师 的帖子

非常感谢法师进一步的讲解,也感谢1楼给的好问题,让我学到了知识。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-3-12 21:37 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-3-14 17:38 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 mjzxlmg 于 2011-3-12 21:37 发表
这个希尔排序的表格,能不能做成同分同名,下个名次累加。如两个第二名,则排位第四的为第四名,而不是第三名。即有多少个分数,则最后一名就是第多少名。
另外能不能把前四列也复制到排名表中,总分一列计算总分(sum(e5:o5)),在级排名后一起计算班排名?
这样就不必在统分表计算总分,班排名了。一步到位。


这样就可以了

没必要在VBA计算总分,你在统分表放个 sum 公式就可以了

其实总分也不应该是各科分数简单相加。。。。。。(还有各科权重,标准分等等玩意呢)

oops, 有个小错误, dim last_score as long 应改为 dim last_score as currency,不然不能计算小数点

已修复重新上传

[ 本帖最后由 灰袍法师 于 2011-3-14 19:14 编辑 ]

成绩表.rar

22.65 KB, 下载次数: 234

TA的精华主题

TA的得分主题

发表于 2011-3-14 21:02 | 显示全部楼层
改进了一下,但是需用excel2007,采用了Sumifs函数,添加辅助列,用excel2007透视表更能显示它的可视排名的优越性:
成绩表.rar (17.54 KB, 下载次数: 89)

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-3-14 22:57 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
有劳YANJIE版主大人了。
透视表查看真是很好用。个人很实用。
但我主要是用来开会的,要打印,因此还是用灰袍法师的好了。
不过也非常感谢你的帮助。我自己还是会用透视表的。

这个平台是有家的感觉,遇到问题总是有不烦其烦地帮忙。愿论坛越办越好。

[ 本帖最后由 mjzxlmg 于 2011-3-14 22:59 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-5-1 22:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
希尔算法针对排序就是牛

TA的精华主题

TA的得分主题

发表于 2012-2-16 14:07 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 zyf1293 于 2012-2-16 14:10 编辑
灰袍法师 发表于 2011-3-10 18:43
希尔排序的原理可以在维基百科,或者算法书找到详细介绍

我的排序帖最大特点是找到了最快的h序列,维 ...
希尔排序简要说明.jpg (118.34 KB, 下载次数: 7)
希尔排序简要说明.jpg
想详细了解希尔排序,不知灰袍法师上图中的书名是什么,可否告知?谢谢!

TA的精华主题

TA的得分主题

发表于 2012-2-16 15:46 | 显示全部楼层
本帖最后由 灰袍法师 于 2012-2-16 15:54 编辑
zyf1293 发表于 2012-2-16 14:07
希尔排序简要说明.jpg (118.34 KB, 下载次数: 7)

想详细了解希尔排序,不知灰袍法师上图中的书名是什么, ...

《程序员实用算法》 作者:Andrew.Binstock & John Rex,实用,好懂,深入,强力推荐
另一本很好的书是《C算法》 作者.(美国)Robert.Sedgewick,此公也是一超级牛人了。
《计算机程序设计艺术》 The.Art.Of.Computer.Programming 作者:Donald.E.Knuth,这本书虽然用的是类似汇编语言来写作,不过还是非常有参考价值的
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-3-29 14:18 , Processed in 0.049833 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表