开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 370|回复: 9
收起左侧

[已解决] 数组合并求思路

 关闭 [复制链接]
结帖率:95% (21/22)
发表于 2024-9-10 14:36:32 | 显示全部楼层 |阅读模式   广东省广州市
30精币
a数组[1 2 3 4 5 6]               举例数字吧
b数组[8 5 7 1 2 9 0]            数组内部不重复

想形成一个新数组或文本
结果格式是        *表示对方数组没有补*   
1   1  
2   2
3   *
4   *
5   5
6   *
8   *
7   *
9   *
0   *
首先取2个数组相同的
其次取a数组不同的
最后取b数组不同的

刚写到循环想用删除成员的写法,又发现成员数变化,一时间忘记怎么处理了没有思路
请问大家是怎么处理的?论坛搜索了一下也暂时没看到类似对比处理






补充内容 (2024-9-10 14:38):
数组数量不定,有可能成员5-8万+,也可能是1个

最佳答案

查看完整内容

循环想用删除成员的写法 计次循环正序检查和删除数组成员 https://bbs.125.la/forum.php?mod=viewthread&tid=14790897 (出处: 精易论坛)

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳

结帖率:100% (18/18)

签到天数: 20 天

发表于 2024-9-10 14:36:33 | 显示全部楼层   福建省泉州市
循环想用删除成员的写法

计次循环正序检查和删除数组成员
https://bbs.125.la/forum.php?mod=viewthread&tid=14790897
(出处: 精易论坛)

评分

参与人数 2好评 +1 精币 +2 荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!
sunfly + 1 + 2 一个+1-1的确不错的思路

查看全部评分

回复

使用道具 举报

签到天数: 15 天

发表于 2024-9-10 14:42:43 | 显示全部楼层   四川省宜宾市
  
子程序名返回值类型公开备 注
_按钮1_被单击  
变量名类 型静态数组备 注
a整数型0
b整数型0
a = { 1, 2, 3, 4, 5, 6 }
b = { 8, 5, 7, 1, 2, 9, 0 }
加入成员 (a, b)
数组_去重复_整数型 (a)
调试输出 (a)


i支持库列表   支持库注释   
spec特殊功能支持库

回复

使用道具 举报

结帖率:100% (2/2)

签到天数: 5 天

发表于 2024-9-10 14:50:10 | 显示全部楼层   广西壮族自治区贵港市
.版本 2
.支持库 spec

.局部变量 a, 整数型, , "0"
.局部变量 b, 整数型, , "0"
.局部变量 成员数, 整数型
.局部变量 合并后的数组, 整数型, , "0"

a = { 1, 2, 3, 4, 5, 6 }
b = { 8, 5, 7, 1, 2, 9, 0 }
成员数 = zy哈希类_去重合并数组 (a, b, 合并后的数组)
调试输出 (成员数, 合并后的数组)

.子程序 zy哈希类_去重合并数组, 整数型
.参数 a, 整数型, 数组
.参数 b, 整数型, 数组
.参数 合并后的数组, 整数型, 参考 数组
.局部变量 哈希, 哈希表类zy
.局部变量 i, 整数型
.局部变量 成员数, 整数型

清除数组 (合并后的数组)
哈希.创建 (#整数型, #整数型)
.计次循环首 (取数组成员数 (a), i)
    哈希.添加 (a [i], 1)
.计次循环尾 ()
.计次循环首 (取数组成员数 (b), i)
    哈希.添加 (b [i], 1)
.计次循环尾 ()
成员数 = 哈希.取所有键 (合并后的数组)
返回 (成员数)


'鱼刺多线程模块
回复

使用道具 举报

结帖率:100% (2/2)

签到天数: 15 天

发表于 2024-9-10 16:48:26 | 显示全部楼层   贵州省毕节市
两个数组 加入哈希表 循环cha询对方 比数组的效率高多了
回复

使用道具 举报

签到天数: 18 天

发表于 2024-9-10 17:18:39 | 显示全部楼层   广东省东莞市
  
变量名类 型静态数组备 注
a文本型0
b文本型0
c文本型0
i整数型 
aaHashMap_StrInt 
bbHashMap_StrInt 
d文本型0
a = { “1”, “2”, “3”, “4”, “5”, “6” }
b = { “8”, “5”, “7”, “1”, “2”, “9”, “0” }
c = a
加入成员 (c, b)
计次循环首 (取数组成员数 (c), i)
如果 (i ≤ 取数组成员数 (a))
aa.加入 (c [i], 0, )
bb.加入 (c [i], 0, )

计次循环尾 ()
计次循环首 (取数组成员数 (c), i)
如果 (i ≤ 取数组成员数 (a))
如果 (bb.加入 (a [i], 0, ))
加入成员 (d, “*”)
加入成员 (d, c [i])

如果真 (aa.加入 (c [i], 0, ))
加入成员 (d, “*”)


计次循环尾 ()
调试输出 (d)


i支持库列表   支持库注释   
spec特殊功能支持库

回复

使用道具 举报

签到天数: 18 天

发表于 2024-9-10 17:24:10 | 显示全部楼层   广东省东莞市
  
变量名类 型静态数组备 注
a文本型0
b文本型0
c文本型0
i整数型 
aaHashMap_StrInt 
bbHashMap_StrInt 
d文本型0
a = { “1”, “2”, “3”, “4”, “5”, “6” }
b = { “8”, “5”, “7”, “1”, “2”, “9”, “0” }
c = a
加入成员 (c, b)
计次循环首 (取数组成员数 (c), i)
如果 (i ≤ 取数组成员数 (a))
aa.加入 (c [i], 0, )
bb.加入 (c [i], 0, )

计次循环尾 ()
计次循环首 (取数组成员数 (c), i)
如果 (i ≤ 取数组成员数 (a))
如果 (bb.加入 (a [i], 0, ))
加入成员 (d, c [i]“ *”)
加入成员 (d, c [i]“ ” + c [i])

如果真 (aa.加入 (c [i], 0, ))
加入成员 (d, c [i]“ *”)


计次循环尾 ()
调试输出 (数组_合并 (d, #换行符 ))


i支持库列表   支持库注释   
spec特殊功能支持库

回复

使用道具 举报

结帖率:95% (21/22)

签到天数: 27 天

 楼主| 发表于 2024-9-10 19:53:57 | 显示全部楼层   广东省广州市
谢谢各位 参考Suky的思路写了一下
问题里面头晕晕写错了
结果应该是
1 1
2 2
3 *
4 *
5 5
6 *
* 8
* 7
* 9
* 0

8790位置反了。
回复

使用道具 举报

结帖率:95% (21/22)

签到天数: 27 天

 楼主| 发表于 2024-9-10 20:07:05 | 显示全部楼层   广东省广州市
.版本 2
.支持库 spec

.子程序 _按钮2_被单击
.局部变量 a, 文本型, , "6"
.局部变量 b, 文本型, , "7"
.局部变量 i, 整数型
.局部变量 n, 整数型
.局部变量 数, 文本型
.局部变量 存在, 逻辑型

' 本方法参考Suky的思路写出,能得到正确结果

a [1] = “1”
a [2] = “2”
a [3] = “3”
a [4] = “4”
a [5] = “5”
a [6] = “6”  ' 手动设置数组例子

b [1] = “8”
b [2] = “5”
b [3] = “7”
b [4] = “1”
b [5] = “2”
b [6] = “9”
b [7] = “0”  ' 手动设置数组例子


.计次循环首 (取数组成员数 (a), i)  ' 调试原始数组a
    数 = 数 + a [i] + “ ”
.计次循环尾 ()
调试输出 (“a数组”, 数)
数 = “”
.计次循环首 (取数组成员数 (b), i)  ' 调试原始数组b
    数 = 数 + b [i] + “ ”
.计次循环尾 ()
调试输出 (“b数组”, 数)

' +第一步++++++++++++++++++++++++++++++++++++++++开始循环数组a成员,对比成功 调试输出a[i] b[n]并加入结果框,整个数组b对不上输出a[i] *
i = 0
.计次循环首 (取数组成员数 (a), )
    i = i + 1
    .计次循环首 (取数组成员数 (b), n)
        调试输出 (“对比”, a [i], b [n])  ' 调试每个对比过程
        .如果真 (a [i] = b [n])  ' 对比成功
            调试输出 (a [i] + “ ” + b [n])  ' 调试输出成功2个成员
            编辑框_结果.加入文本 (a [i] + “ ” + b [n] + #换行符)
            删除成员 (a, i, )
            删除成员 (b, n, )
            i = i - 1
            存在 = 真  ' 这个没有用到
            跳出循环 ()
        .如果真结束

    .计次循环尾 ()
    .如果真 (存在 = 假)  ' 整个数组b遍历后还是没有对比成功,用原始逻辑判断输出数组a[i] *
        调试输出 (a [i] + “ ” + “*”, “a  b不存在”)
        编辑框_结果.加入文本 (a [i] + “ ” + “*” + #换行符)
        删除成员 (a, i, )
        i = i - 1
    .如果真结束
    存在 = 假  ' 把逻辑判断重置
.计次循环尾 ()
' ++++++++++++++++++++++++再次输出2个数组看看数组a遍历完后的2个数组情况
数 = “”
.计次循环首 (取数组成员数 (a), i)
    数 = 数 + a [i] + “ ”
.计次循环尾 ()
调试输出 (“a数组”, 数)
数 = “”
.计次循环首 (取数组成员数 (b), i)
    数 = 数 + b [i] + “ ”
.计次循环尾 ()
调试输出 (“b数组”, 数)

' 第二步,把数组b里面的剩余对比不匹配的输出* b[n] (问题里面打错了方向,这个没有区别,只是文本拼接问题)
.计次循环首 (取数组成员数 (b), n)
    调试输出 (“*” + “ ” + b [n], “a不存在  b”)
    编辑框_结果.加入文本 (“*” + “ ” + b [n] + #换行符)
.计次循环尾 ()
返回 ()

回复

使用道具 举报

结帖率:95% (21/22)

签到天数: 27 天

 楼主| 发表于 2024-9-10 20:07:54 | 显示全部楼层   广东省广州市
调试结果
* “a数组” | “1 2 3 4 5 6 ”
* “b数组” | “8 5 7 1 2 9 0 ”
* “对比” | “1” | “8”
* “对比” | “1” | “5”
* “对比” | “1” | “7”
* “对比” | “1” | “1”
* “1 1”
* “对比” | “2” | “8”
* “对比” | “2” | “5”
* “对比” | “2” | “7”
* “对比” | “2” | “2”
* “2 2”
* “对比” | “3” | “8”
* “对比” | “3” | “5”
* “对比” | “3” | “7”
* “对比” | “3” | “9”
* “对比” | “3” | “0”
* “3 *” | “a  b不存在”
* “对比” | “4” | “8”
* “对比” | “4” | “5”
* “对比” | “4” | “7”
* “对比” | “4” | “9”
* “对比” | “4” | “0”
* “4 *” | “a  b不存在”
* “对比” | “5” | “8”
* “对比” | “5” | “5”
* “5 5”
* “对比” | “6” | “8”
* “对比” | “6” | “7”
* “对比” | “6” | “9”
* “对比” | “6” | “0”
* “6 *” | “a  b不存在”
* “a数组” | “”
* “b数组” | “8 7 9 0 ”
* “* 8” | “a不存在  b”
* “* 7” | “a不存在  b”
* “* 9” | “a不存在  b”
* “* 0” | “a不存在  b”
被调试易程序运行完毕


编辑框显示
1 1
2 2
3 *
4 *
5 5
6 *
* 8
* 7
* 9
* 0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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