[STM8] 关于在数组中比较数的问题

[复制链接]
1575|17
 楼主| 超超呼叫乐乐 发表于 2016-9-5 17:02 | 显示全部楼层 |阅读模式
各位大神前辈们好,我有个问题想请教一下,问题描述如下:
假如我向有10个元素的一维数组中存入10个整数,然后在每次存入的时候需要和数组中的其他已经存入的数字比对,如果有重复的话,那么就删除重复中的任意一个。

我的困惑:
我知道这个可以用for循环来实现,但是一旦我存的数据很大,例如我要存上百个数或者是上千个数,那么必然比对的次数也就十分可观。有木有什么更好的办法来解决这个问题。

欢迎各位大神出个点子,不胜感激。
 楼主| 超超呼叫乐乐 发表于 2016-9-5 17:03 | 显示全部楼层
嗯,自己先来占个坐,坐等各位大神
john_lee 发表于 2016-9-5 17:08 | 显示全部楼层
排序和查找
yklstudent 发表于 2016-9-5 17:15 | 显示全部楼层
应该没什么办法
 楼主| 超超呼叫乐乐 发表于 2016-9-5 17:17 | 显示全部楼层

这真是一个悲伤的故事
长的帅怪我落 发表于 2016-9-5 17:19 | 显示全部楼层
本来你数据大,运算就很大,这没办法的事,总不能你运算1个数和1万个数要求是一样吧,这不科学
mmuuss586 发表于 2016-9-5 17:43 | 显示全部楼层
你可以每次保存后,都排下序,以方便下次快速查找
世界心 发表于 2016-9-5 18:36 | 显示全部楼层
本帖最后由 世界心 于 2016-9-5 18:40 编辑

建立一个包含所要存的数的最小值和最大值之间所有整数的存储空间,建立一个资源管理标志列表,当存过某个数之后将标志位置一,然后采用快速查找算法看有没有存这个数据,没有存就存下并置标志位为1,存了就直接忽略。具体可参考uc/OS任务就绪列表的查找方法,有异曲同工之妙
changle11sdo5 发表于 2016-9-5 19:33 来自手机 | 显示全部楼层
changle11sdo5 发表于 2016-9-5 19:48 来自手机 | 显示全部楼层
本帖最后由 changle11sdo5 于 2016-9-6 09:35 编辑

,。
戈卫东 发表于 2016-9-5 20:09 | 显示全部楼层
如果你的存储足够大,可以用容量换速度
mohanwei 发表于 2016-9-5 20:46 | 显示全部楼层
排序+二分法逐次逼近查找
冰零分子 发表于 2016-9-5 21:26 | 显示全部楼层
二叉查找树
ccxlslr 发表于 2016-9-6 08:32 来自手机 | 显示全部楼层
二叉树,效率高
zyj9490 发表于 2016-9-6 08:49 | 显示全部楼层
第一步,排序是基本的,
第二步。编历,比较可用二分法了,排序可用线性表,
时光深巷已无她 发表于 2016-9-6 09:19 | 显示全部楼层
看看数据结构里面的算法。
icecut 发表于 2016-9-6 09:22 | 显示全部楼层
浪费内存提高性能,减少内存浪费性能.
参考插入排序.
cos12a 发表于 2016-9-6 12:42 | 显示全部楼层
先找个超多核的计算器,再研究一个高效的算法,最后把你的数据输进去。
好的方法只是相对的,我觉得够用就行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

19

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部