为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 易语言例程 正文

极速统计数组重复并分类源码

三叶资源网 2019-08-23 18:36:34 易语言例程 1264 ℃ 0 评论

先讲下算法吧

主要里利用“节点”的特性优化速度,此法速度也许算不上最快的,但算法肯定是最简单的

节点特性1:节点类似与哈希表,当向节点内加入一个新属性时,返回成功,当向节点内加入一个已存在的同名属性时则返回失败,利用这个特性可以很容易判断数组成员是不是重复

节点特性2:虽然无法加入同名的属性,但却可以修同名属性的属性值,利用这点可以记录每个数组成员的重复次数

由此可见,只需要一次计次循环就能完成数组去重+分类统计重复次数,相对于嵌套多层循环比对的方法效率要高得多


根据反复测试的结果,发现一个重要的规律

当数组成员数一样时,统计耗时跟去重后的成员数成反比,也就是说同样为10万数组,去重后为1000个成员的耗时比去重后为100个成员耗时多8~10倍左右

为什么会有这种规律?应该是节点的另一个特性:加入新属性耗时修改已有的属性值要慢得多


以上为本人的一点愚见,欢迎有大神可以分享效率更高的算法。

9.12日重要更新

根据@猥琐小胖子和@ANJIANTEST大神的提示,增加了哈希表法,对于完全不重复的数组统计的效率要比节点法高几百倍(1秒内可以完成10万数组统计分类)。

@birdmanxp

极速统计数组重复并分类.png

文件下载

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
系统服务优化向导LocalStoragepython orc识别游戏辅助外挂快手无水印模拟红绿灯httpwacth找色U盘锁屏界面UI识图按键助手内存注入模块播音喇叭JavaScript自绘桌面图片比例缩放翻译助手手势验证码企鹅FM评论超级列表框背景透明
最新评论