社区
数据结构与算法
帖子详情
设数组a[N]存有N个float数,如何确定其中有多少个不同的数?
ufouser
2004-03-25 10:21:14
设数组a[N]存有N个float数,如何确定其中有多少个不同的数?
算法复杂度不能超过N*LOG(N).
能不能不排序就解决问题?
...全文
77
8
打赏
收藏
设数组a[N]存有N个float数,如何确定其中有多少个不同的数?
设数组a[N]存有N个float数,如何确定其中有多少个不同的数? 算法复杂度不能超过N*LOG(N). 能不能不排序就解决问题?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ufouser
2004-03-29
打赏
举报
回复
谢谢
firstsee
2004-03-27
打赏
举报
回复
用平衡二叉树的话效率会更高,如果数据量大的话,检索的速度会明显优于排序树。
草履虫程序员
2004-03-27
打赏
举报
回复
用链表的数据结构方式,通过结点进行筛选。
ding44
2004-03-27
打赏
举报
回复
如果N很大,而结果不要精确的话,可以用概率计数方法
feizhongchao
2004-03-26
打赏
举报
回复
如果不考虑空间复杂度就可以。
把它转化为对整数的判断方法。
1. 如果是整数,则可以另外建立一个数组c[n],长度为从最小的那个数一直建到最大的那个数。
然后如果c[n]=x,x为a[n]中的一个数。
则c[n]++。
最后遍历一次,如果发现c[n]某一位大于2,则说明有重复。
2.对计算机表示的浮点数,他的小数位是有限的,可以看作常数CONST。
3.有了上面两个前提:
对这些浮点数从最高位到最低位一次判断有没有重复的。对有重复的就比较下一位。
时间复杂度为CONST*N
hell190109
2004-03-26
打赏
举报
回复
每个float数都不太大的话,这样,做一个链表数组b[max],max是你预计的源数组中所有float数最大不会超过的数,然后你遍历一次a[N]就可知道有多少样的数了,比如第一个数是3.8,你就把他放在b[3]链表里的第一个位置,这样遍历下去,如果察到的链表里有数了,就在链表里比一下,看有没有样的,没有就放在后面,有就不放,计数器加一。
如果有a[N]里有负数,你可以再做一个c[max]。
a[N]中元素值范围很大的话,就先除个1000、10000什么的,在察数组,往里放。
如果只是个别的大,那把他们提出来单算。
wlpwind
2004-03-26
打赏
举报
回复
上面的复杂度为n^2.
可以不排序,但是应该要建二叉排序树。
qingcaodi
2004-03-26
打赏
举报
回复
可以不排序。
另设一数组b[N]和int count=0。然后将数组a从头挨个看过去,每一个都和数组b中的前count个数比过去,如果是同一个数,就看数组a中的下一个数;如果没有在b中找到一样的,就将这个值拷贝到b中,并且count加一。最后的count就是答案。
请注意,float数不能简单的用等于或不等于来判断是否为同一个数。
java程序从键盘输入十个整
数
存入
数
组
a中_并编程实现:_2.用指针方式编写程序:从键盘输入10个整
数
,并存入
数
组
,要求将10个书中的最大
数
与第一个输入的
数
交...
用指针方式编写程序,从键盘输入10个整形整
数
,并存入
数
组
,要求将10个
数
中最大的
数
与第1个输入的
数
交换;将10个
数
中最小#includevoidmain(){inta[10],i,*m,*n,k=0;\x09printf("请输入十个
数
\n");for(i=0;i用指针方式...
c语言
数
组
存放10个随机
数
,求c语言高手编一程序 将
数
组
a[10]中正
数
与负
数
分出并分别存到b[N]、...
题目中有些需要考虑的问题:1。 没有给出
数
组
a[10]
数
据源, 要我们创造出来么? 随机输入还是用户输入? 另外a是什么类型的
数
组
, 整
数
?... 如果
数
组
a是int/double/
float
类型
数
组
的其中一个, 那么
数
组
中出现0(...
数
组
数
组
和变量差不多,都是存放
数
据的,
不同
的是变量只能保存一条
数
据,而
数
组
可以保存多条
数
据,前提这个多条
数
据必须是同一类型的
数
组
是引用
数
据类型
数
组
一旦初始化,长度不可变。长度
确定
下来了 3.如何定义
数
组
? ...
浅谈C语言
数
组
之二维
数
组
不能把
不同
数
据类型的
数
据放在同一个
数
组
中。 一、怎样定义和引用二维
数
组
? 怎么定义二维
数
组
与一维
数
组
类似,定义二维
数
组
的一般形式为: 类型符
数
组
名【常量表达式】【常量表达式】 例如 :
float
a[4][5]; 它...
C语言(二十)
本题要求实现一个对
数
组
进行循环右移的简单函
数
:一个
数
组
a中
存有
n(>0)个整
数
,将每个整
数
循环向右移m(≥0)个位置。 输入:输入长度为n的整型
数
组
a和右移位
数
m 输出:输出移动后的
数
组
a的序列 优化目标:无 #...
数据结构与算法
33,028
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章