本帖最后由 爱疯 于 2019-10-22 11:00 编辑
讨论一下,大家在写到二维数组的排序的时候会想到什么方法呢? 我先抛个砖: 我是菜鸟,是直接用Excel的排序功能(先将需要排序的数组粘贴到新建的表中排序完赋值,然后删除新建的表),这样的话直接录制宏改部分代码就可以了,代码写出来速度是肯定不会慢,但是代码的效率不知道是否够高了..
以前试讲的时候上的就是排序。 一、 | 优缺点比较 | | | | | | | | 排序方法 | 优点 | 缺点 | | | | | | 系统排序 | 系统自带,速度较快。 | 对于只需要VBA内部过程中产生的临时排序数组,由于其在表格内需要进行实际读写,则不适用。 且对于数据量较大时其速度也比较慢。 | | | | | | 冒泡排序法 | 简单的排序方法,对于小量数据或者接近排序完成的数据速度较快 | 对于数据量大时排序较慢 | | | | | | 选择排序法 | 冒泡排序的优化,速度较冒泡排序快 | 对于数据量大时排序较慢 | | | | | | 快速排序法 | 适用比较广泛,对于数据量大的随机数据排序较快 | 对于已经接近排序完成的数据速度不如冒泡排序 | | | | | | 计数排序法 | 对于特定的数据排序非常快 | 仅限于数据跨度不大且数据数字不大的整形数据 | | | | | | 插入(希尔)排序法 | 与冒泡排序类似。 希尔排序作为优化后的插入排序,排序效率比插入排序高。 | 插入排序的效率同冒泡排序,但对于已经接近排序完成的数据时效率较低。 希尔排序的效率很难讲。 | | | | | 二、 | 总结 | | | | | | | | 1、首先要确认所要排序的数据是否需要直接显示在表格内。若是,且数据量不大(10000以内)则推荐系统自 带的排序;否则用以下排序。 | | 2、如果你的数据列表中有99%数据已排过序,则用冒泡排序法。 | | 3、如果你要排序的数据较少,则用选择排序法。 | | 4、如果你的数据都是整数,并且数值不大,则用计数排序法。 | | 5、上述方法都不适用时,用快速排序法法 |
|