精易论坛

标题: 最快的去重复 排序后标记去重复 比一般速度更快(取重复 [打印本页]

作者: APPLEUFO    时间: 2021-12-30 16:20
标题: 最快的去重复 排序后标记去重复 比一般速度更快(取重复
本帖最后由 APPLEUFO 于 2021-12-30 19:10 编辑


去重复 取重复有这几个模式  




网上代码集合了几种   1-2以前写的
都是没有飘逸 网友的快 方法3
最近想出了标记的方法  就是方法5  (能用,不排序去重复还是可以的)
然后,把排序和标记结合  ,这回能跑赢  飘逸网友的代码了 ,数据量大的时候快一倍


还有谁,有更快的发出来看看
  
子程序名返回值类型公开备 注
数组模块_去重复6_排序后标记法 排序过的
参数名类 型参考可空数组备 注
参数_文本文本型
参数_重复数组文本型
变量名类 型静态数组备 注
局变_标记整数型0
n1整数型 
局变_对比a文本型 
m1整数型 
清除数组 (参数_重复数组)
排序模块_快速排序_文本 (参数_文本)
重定义数组 (局变_标记, 假, 取数组成员数 (参数_文本))
计次循环首 (取数组成员数 (参数_文本) - 1, n1)
如果 (参数_文本 [n1] = 参数_文本 [n1 + 1])
连续赋值 (1, 局变_标记 [n1], 局变_标记 [n1 + 1])  ' 1  是重复的

' 0 是 无重复数据

计次循环尾 ()
计次循环首 (取数组成员数 (参数_文本) - 1, n1)
如果 (局变_标记 [n1] = 1)
局变_标记 [n1] = 3
局变_对比a = 参数_文本 [n1]
变量循环首 (n1 + 1, 取数组成员数 (参数_文本), 1, m1)
如果 (局变_对比a = 参数_文本 [m1])
局变_标记 [m1] = 2


跳出循环 ()

变量循环尾 ()

' 3  2   0  跳过

计次循环尾 ()
' ===========================================================    这段能让添加返回值时更快
重定义数组 (参数_重复数组, 假, 取数组成员数 (参数_文本))
m1 = 0
计次循环首 (取数组成员数 (参数_文本), n1)
如果 (局变_标记 [n1] = 0 局变_标记 [n1] = 3)
m1 = m1 + 1
参数_重复数组 [m1] = 参数_文本 [n1]



计次循环尾 ()
重定义数组 (参数_重复数组, 真, m1)
' ===========================================================   下面 原始 思路
. ' 计次循环首 (取数组成员数 (参数_文本), n1)
. ' 如果 (局变_标记 [n1] = 0 局变_标记 [n1] = 3)
' 加入成员 (参数_重复数组, 参数_文本 [n1])


. ' 如果 (局变_标记 [n1] = 1)
' ' 暂停 ()


. ' 如果 (局变_标记 [n1] = 2)


' ' 暂停 ()  ' 不可能到这里


' ' 1 不存在
' ' 2  跳过

. ' 计次循环尾 ()


  
子程序名返回值类型公开备 注
数组模块_去重复3_排序后整数型 对文本排序后 ,再循环去重复  ,会对原来顺序产生影响///' 飘逸_yjwfdc  写的去重复
参数名类 型参考可空数组备 注
参数_数组文本型传入要处理的数组,返回处理的结果
变量名类 型静态数组备 注
i整数型 
记录位置整数型 
成员数整数型 
数组模块_快速排序_文本 (参数_数组, )
成员数 = 取数组成员数 (参数_数组)
记录位置 = 1
判断循环首 (记录位置 ≤ 成员数)
i = i + 1
参数_数组 [i] = 参数_数组 [记录位置]
循环判断首 ()
记录位置 = 记录位置 + 1
如果真 (记录位置 > 成员数)
跳出循环 ()

循环判断尾 (参数_数组 [i] = 参数_数组 [记录位置])
判断循环尾 ()
重定义数组 (参数_数组, 真, i)
返回 (取数组成员数 (参数_数组))
' 飘逸_yjwfdc  写的去重复


QQ截图20211230160603.png (41.86 KB, 下载次数: 11)

QQ截图20211230160603.png

夏夜自由模块 9.zip

167.47 KB, 下载次数: 182, 下载积分: 精币 -2 枚


作者: yuan1    时间: 2021-12-30 16:33
感谢分享
作者: yamiedie    时间: 2021-12-30 16:47
感谢分享
作者: tian89    时间: 2021-12-30 17:20
使用易语言数组得都不是很快!目前你得只是方便使用罢了!想办法使用内存方式载目前易语言写法来说算是快得了
作者: 网络注册络员    时间: 2021-12-30 17:30
支持一下太强 
作者: 君笨笨    时间: 2021-12-30 17:38
主要是大文本处理,可以处理G级别的
作者: 神女软件定制    时间: 2021-12-30 17:43
君笨笨 发表于 2021-12-30 17:38
主要是大文本处理,可以处理G级别的

https://125.confly.eu.org/forum.php?mod ... 14710326&extra=
作者: 貂绒    时间: 2021-12-30 20:27
sd sadasdsa少时诵诗书所所所所所所所所
作者: 撒加    时间: 2021-12-30 21:41
排版好评!
作者: 寡人i    时间: 2021-12-31 00:03

作者: 金胖子    时间: 2021-12-31 00:16
用哈希表更快
作者: wjswzj0    时间: 2021-12-31 09:04
感谢分享

作者: 李泽勇2    时间: 2021-12-31 11:43
高手高手高高手。
作者: 外星星人    时间: 2021-12-31 12:04
感谢分享哦
作者: 小牛咪咪    时间: 2021-12-31 22:58

作者: 成神之日    时间: 2022-1-1 03:35
感谢分享,很给力!~
作者: 呼啦啦啦啦啦    时间: 2022-1-2 18:33
支持一下好的作品,就要统一的回复
作者: jiangjinhua    时间: 2022-1-3 00:56
感谢分享666666
作者: dandanbu    时间: 2022-1-3 01:06
提示: 作者被禁止或删除 内容自动屏蔽
作者: 趣冉科技    时间: 2022-1-4 11:05
支持开源~!感谢分享
作者: xjshuaishuai    时间: 2022-1-7 10:13
谢谢分享!
作者: cultwent    时间: 2022-1-8 22:05
顶,支持楼主分析
作者: zhifu3158    时间: 2022-1-17 15:31
支持开源~!感谢分享
作者: 瓶中仙子    时间: 2022-1-24 00:58
金胖子 发表于 2021-12-31 00:16
用哈希表更快

可以发代码对比下吗
作者: 金胖子    时间: 2022-1-24 01:34
瓶中仙子 发表于 2022-1-24 00:58
可以发代码对比下吗

你好,论坛里有那个哈希模块你可以使用体验下
作者: 瓶中仙子    时间: 2022-1-24 01:46
金胖子 发表于 2022-1-24 01:34
你好,论坛里有那个哈希模块你可以使用体验下

找了,那模块里面没有去重复,
作者: 金胖子    时间: 2022-1-24 18:12
瓶中仙子 发表于 2022-1-24 01:46
找了,那模块里面没有去重复,
  
子程序名返回值类型公开备 注
数组_去重复_文本型整数型 返回剩余不重复数组的成员数量,内置哈希表高速处理
参数名类 型参考可空数组备 注
文本型数组文本型要去重复的 文本型数组
变量名类 型静态数组备 注
_局部1哈希表类zy 
_局部2文本型 
_局部3整数型 
_局部1.创建 ( #文本型, #整数型, , )
变量循环首 (数组_取成员数 (文本型数组), 1, -1, _局部3)
如果 (文本型数组 [_局部3]“”)
如果真 (_局部1.是否包含键 (“233|空|文|本|233”))
删除成员 (文本型数组, _局部3, 1)
_局部1.添加 (“233|空|文|本|233”, 0)
如果真 (_局部1.是否包含键 (文本型数组 [_局部3]))
删除成员 (文本型数组, _局部3, 1)
_局部1.添加 (文本型数组 [_局部3], 0)

变量循环尾 ()
返回 (_局部1.取数量 ())


作者: 瓶中仙子    时间: 2022-1-25 00:52
金胖子 发表于 2022-1-24 01:34
你好,论坛里有那个哈希模块你可以使用体验下

兄弟你那个代码的回复,咋看不到了,是不是系统删掉了哦
作者: 金胖子    时间: 2022-1-25 06:49
瓶中仙子 发表于 2022-1-25 00:52
兄弟你那个代码的回复,咋看不到了,是不是系统删掉了哦

你刷新看一下,我这能看到,可能在审核?
作者: 瓶中仙子    时间: 2022-1-25 11:57
本帖最后由 瓶中仙子 于 2022-1-25 12:04 编辑
金胖子 发表于 2022-1-24 18:12
[e=0].版本 2

.子程序 数组_去重复_文本型, 整数型, 公开, 返回剩余不重复数组的成员数量,内置哈希表高 ...

貌似缺了模块,加了zyHashTable模块,还是跑不起来
补充:感谢大神分享代码,已经搞定了,把数组_取成员数 改成取数组成员数,跑起来了

作者: myfaint009    时间: 2022-1-27 09:50
支持开源~!感谢分享
作者: JYYeah    时间: 2022-2-1 22:49
支持开源~!感谢分享
作者: 956985425    时间: 2022-2-13 15:04

作者: sampo    时间: 2022-2-19 13:06
        支持开源~!感谢分享
作者: 猪天神魔    时间: 2022-7-20 12:48
6666666666666666666666666
作者: li110    时间: 2023-8-2 09:25
小小心意,意思一下
作者: dol    时间: 2023-8-5 15:46
666666666666666666666
作者: 603007856    时间: 2024-1-25 13:34
66666666666666
作者: qf123    时间: 2024-4-13 14:05
666666666666666666
作者: 柠檬秋刀鱼    时间: 2024-4-18 13:42
66666666666666666
作者: 我的yyy123    时间: 2025-4-14 18:01
学习学习
作者: BY小齐    时间: 2025-4-24 13:26





欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4