社区
C语言
帖子详情
求,验证数组中各元素互不相等的最佳算法
suiyun
2005-08-23 09:12:01
struct STRUCT {
int a;
int b;
char str[100];
}stArray[100];
用什么方法能够最快的判断出各个元素完全不同?即a,b,str都不相等
...全文
308
12
打赏
收藏
求,验证数组中各元素互不相等的最佳算法
struct STRUCT { int a; int b; char str[100]; }stArray[100]; 用什么方法能够最快的判断出各个元素完全不同?即a,b,str都不相等
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
suiyun
2005-08-26
打赏
举报
回复
to megaboy:
如果是为了证明相等我会用
*p = &stArray[1];
iCount = sizeof(stArray)/sizeof(struct STRUCT) - 1;
while(stArray[0] == *p++ && iCount--);
这样还能减少对一个指针的递增操作。
不过要证明互不相等我实在没有想出好办法,期待高见
QuickKeyBoard
2005-08-25
打赏
举报
回复
这个容易,用个Hash吧,一定是最快速的了。
megaboy
2005-08-25
打赏
举报
回复
先谢谢楼上了。不过,我那个贴子的思路想错了,没看清楚楼主的意思。
这道题并不在于用memcpy还是指针,而是得有一个好思想来快速完成比较。原始的方法,是用两层for循环并使用strncmp来进行比较,但这显然效率太低。我现在还没有想出很好的方法。
lujun-cc
2005-08-25
打赏
举报
回复
我觉得回复人: megaboy(点背不能怨社会,命苦不能怪政府!) 的思路就很好!,只不过他判断的是是否相等,对他的代码稍做修改就好: == 换成 !=
dch4890164
2005-08-24
打赏
举报
回复
memcmp()
使用这个函数的注意不错,不过不知道是不是最快!!
jsjjms
2005-08-24
打赏
举报
回复
使用位操作快,。。。
qingyuan18
2005-08-24
打赏
举报
回复
mark 先
OpenHero
2005-08-24
打赏
举报
回复
直接用位操作 & | ! 操作
不过必须得考虑内存对齐 ~~~~这样是最快的
jixingzhong
2005-08-24
打赏
举报
回复
直接比较内存内容好了 ... memcmp()
suiyun
2005-08-24
打赏
举报
回复
楼上,要互不相同
megaboy
2005-08-24
打赏
举报
回复
更正一下,上面那句while循环应该改为这样:while(*p1++ == *p2++ && iCount > 0) --iCount;
megaboy
2005-08-24
打赏
举报
回复
在楼主“能够最快的判断出各个元素完全不同”的条件下,库函数不是好选择,每次比较都要产生调用的开销,花费太多。更好的选择,除了汇编,就是直接用指针操作了,三四行代码而已:
int iCount = sizeof(struct STRUCT);
char *p1 = &stArray[0], *p2 = &stArray[1];
while(*p1++ == *p2++ && iCount-- > 0);
if(iCount == 0) ........ //iCount=0表示相同
上海电机学院C语言实训答案
① 用函数 int IsNumberEqual(int number) 检查输入的整数number各数码是否
互不
相等
,全
相等
返回值为1否则为0; ② 用函数(void ntos (int number, int c[]) )把四位数整数number各位数码分别存入数组c ③ 用函数( ...
判断二维
数组中
元素
是否
互不
相同
#include<stdio.h> #define MaxSize 20 //打印二维数组 void printArr(int arr[MaxSize][MaxSize],int m,int n) { int i,j;...//判断二维
数组中
是否有相同
元素
存在 bool judgeSameElem(int.
C语言经典
算法
100道实战题
本课程【C语言经典
算法
100道实战题】视频,知识体系全面,语言通俗易懂,培养编程兴趣、拓宽编程思维、提高动手编码能力,经典
算法
涉及数学知识应用、数据结构排序
算法
、图形编程应用、简单游戏
算法
。
两个线性时间解决的
算法
题
2.一个数组,现在它的
元素
处于如此的特殊情况,假如该
数组中
有一对
元素
互不
相等
,其他
元素
都是成对的
相等
。试想出一种线性时间
算法
,
求
出该
数组中
这对特殊的不
相等
的
元素
。 方法一:采用
自学js第六天:JS数组和
算法
从
数组中
pop/shift删除的
元素
(当数组删光了,则返回undefined)。 function函数没有return返回值时,也会默认返回undefined的. indexOf数组方法(通过
元素
找下标,没有找到则返回-1 ) String(num)[1] 字符串也可以根据...
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章