打印
[STM8]

关于在数组中比较数的问题

[复制链接]
1333|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
各位大神前辈们好,我有个问题想请教一下,问题描述如下:
假如我向有10个元素的一维数组中存入10个整数,然后在每次存入的时候需要和数组中的其他已经存入的数字比对,如果有重复的话,那么就删除重复中的任意一个。

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

欢迎各位大神出个点子,不胜感激。
沙发
超超呼叫乐乐|  楼主 | 2016-9-5 17:03 | 只看该作者
嗯,自己先来占个坐,坐等各位大神

使用特权

评论回复
板凳
john_lee| | 2016-9-5 17:08 | 只看该作者
排序和查找

使用特权

评论回复
地板
yklstudent| | 2016-9-5 17:15 | 只看该作者
应该没什么办法

使用特权

评论回复
5
超超呼叫乐乐|  楼主 | 2016-9-5 17:17 | 只看该作者

这真是一个悲伤的故事

使用特权

评论回复
6
长的帅怪我落| | 2016-9-5 17:19 | 只看该作者
本来你数据大,运算就很大,这没办法的事,总不能你运算1个数和1万个数要求是一样吧,这不科学

使用特权

评论回复
7
mmuuss586| | 2016-9-5 17:43 | 只看该作者
你可以每次保存后,都排下序,以方便下次快速查找

使用特权

评论回复
8
世界心| | 2016-9-5 18:36 | 只看该作者
本帖最后由 世界心 于 2016-9-5 18:40 编辑

建立一个包含所要存的数的最小值和最大值之间所有整数的存储空间,建立一个资源管理标志列表,当存过某个数之后将标志位置一,然后采用快速查找算法看有没有存这个数据,没有存就存下并置标志位为1,存了就直接忽略。具体可参考uc/OS任务就绪列表的查找方法,有异曲同工之妙

使用特权

评论回复
9
changle11sdo5| | 2016-9-5 19:33 | 只看该作者
分类

使用特权

评论回复
10
changle11sdo5| | 2016-9-5 19:48 | 只看该作者
本帖最后由 changle11sdo5 于 2016-9-6 09:35 编辑

,。

使用特权

评论回复
11
戈卫东| | 2016-9-5 20:09 | 只看该作者
如果你的存储足够大,可以用容量换速度

使用特权

评论回复
12
mohanwei| | 2016-9-5 20:46 | 只看该作者
排序+二分法逐次逼近查找

使用特权

评论回复
13
冰零分子| | 2016-9-5 21:26 | 只看该作者
二叉查找树

使用特权

评论回复
14
ccxlslr| | 2016-9-6 08:32 | 只看该作者
二叉树,效率高

使用特权

评论回复
15
zyj9490| | 2016-9-6 08:49 | 只看该作者
第一步,排序是基本的,
第二步。编历,比较可用二分法了,排序可用线性表,

使用特权

评论回复
16
看看数据结构里面的算法。

使用特权

评论回复
17
icecut| | 2016-9-6 09:22 | 只看该作者
浪费内存提高性能,减少内存浪费性能.
参考插入排序.

使用特权

评论回复
18
cos12a| | 2016-9-6 12:42 | 只看该作者
先找个超多核的计算器,再研究一个高效的算法,最后把你的数据输进去。
好的方法只是相对的,我觉得够用就行。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

19

帖子

5

粉丝