永发信息网

假设以顺序结构存储线性表: (1) 编写一具有"查找该线性表中是否存在两个相邻的

答案:2  悬赏:70  手机版
解决时间 2021-02-27 08:31
1、假设以顺序结构存储线性表:
(1) 编写一具有“查找该线性表中是否存在两个相邻的元素值也相等”功能的算法。
(2) 分析该算法的平均时间复杂度(假设线性表中一定存在相邻的元素值也相等的情况)。
最佳答案
typedef struct Sequece{
int *data;

int length;

}Seq,*PSQ;

//如果存在返回1,否则返回1
int search_equal_ele( Seq seq ){
if( seq.length <= 1 )
return 0;

int i = 0;

while( i < seq.length - 1 ){

if( seq.data[i] == seq.data[++i] )

return 1;

}

return 0;

}

时间复杂度,得从相等元素出现的位置考虑,假如有n个元素;位置出现在1,2,3,,,n-1的位置总的比较次数:1+2+3+。。。+(n-1) = n(n-1)/2;除以n-1,故平均比较次数为n/2
全部回答

#include<iostream.h>

template<class t> class a { t *a; int n; public: a(t *a,int s) { this->a=a; n=s; } void order(t a[]); int locate(t a[],t x); t sum(t a[]); };

template<class t> void a<t>::order(t a[]) { t t; for(int i=0;i<n-1;i++) for(int j=i+1;j<=n-1;j++) if(a[i]>a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } for(int k=0; k<=n-1;k++) cout<<a[k]<<endl;

}

template<class t> int a<t>::locate(t a[],t x ) { for(int i=0;i<=n-1;i++) { if(a[i]==x) return i+1;

} return 0; }

template<class t> t a<t>::sum(t a[]) { t s=0; for(int i=0; i<=n-1; i++) s=s+a[i]; return s; }

void main() { int i; int a[]={11,12,32,22,1,5,8,2,9,10};

a<int> a1(a,10);

cout<<"输入要查找的元素"<<endl; cin>>i; cout<<"查找元素的位置为:"<<a1.locate(a,i)<<endl;

a1.order(a);

cout<<"数组的和为:"<<'\t'; cout<<a1.sum(a)<<endl;

}

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
威海泰鑫装饰工程有限公司这个地址在什么地方
小明随同学一起参加以“寻找人类足迹”为主题
君と彼と仆と彼女と歌词中文翻译
我得是佳能70D,用摄影引闪灯拍照片,相机光
做醋姜用黑醋还是白醋好
你是如何看待在QQ空间,微信朋友圈秀恩爱的?
犍为县岷东乡骑凤村甲级村卫生室地址在哪,我
毕马威经理面试后多长时间收到par面
怎样解除oppo手机防误触摸
鼠标2000万次点击能使用多长时间,打英雄联盟
在大学宿舍晚上睡不着
仓道路/木北路(路口)地址在什么地方,想过去
为什么要进行成型车刀轮廓设计
教育培训行业交什么税
有些朋友走着走着就散了但有些人走着越来越深
推荐资讯
欧嘉丽自行车和奥威特自行车哪个牌子好
步步高手机有假货吗?
对甲基苯甲醛和苯乙醛互为同分异构体吗
翡翠城第二季怎么样?好不好?值不值得买?
晨光休闲宾馆在哪里啊,我有事要去这个地方
假如把已经通电的5v电机强制停止转动(一直通
que的音标在u上还是在e
要去拜访客户,送什么礼物比较好啊?
宏达汽车维修有限公司在哪里啊,我有事要去这
52x18+47x18+18怎样简便计算
【发光的碎片】( )贝壳碎片( )闪动发光
好不容易找到港澳台人可以投资的平台,无界财
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?