算法如何降低时间复杂度?急求!【matlab代码如下】好解答可加分! 5

while(length(find(reader.nc==0))~=Reader)reader.ncmax=find(reader.nc==max(reader.nc))... while (length(find(reader.nc==0))~=Reader)
reader.ncmax=find(reader.nc==max(reader.nc));
reader.ncc2=reader.ncc(reader.ncmax);
reader.nccmax=reader.ncmax(find(reader.ncc2==max(reader.ncc2)));
ncc=reader.nccmax(1);

for k=1:Tag
if showdistance(x1(ncc),y1(ncc),x2(k),y2(k))<=r
tagcc(k)=tagcc(k)-1;
end
end
reader.nc(ncc)=0;
readerclosed(ncc)=1;

for j=1:Reader
if readerclosed(j)==0 && readerredundant(j)==1
for i=1:Tag
if showdistance(x1(j),y1(j),x2(i),y2(i))<=r && tagcc(i)==1 && tagholder(i)==0
tagholder(i)=j;
for h=1:Tag
if showdistance(x1(j),y1(j),x2(h),y2(h))<=r && tagholder(h)==0
tagholder(h)=j;
end
end
readerclosed(j)=1;
readerredundant(j)=0;
end
end
end
end
end
我在用matlab编写一个小算法,这个算法里面可能多次循环的嵌套,导致得到最终结果(输入Reader=800,Tag=1000,r=30,范围为[1,900]的时候),花费了将近800多秒!!!劳驾各方神圣给我指点迷津,降低我这个算法的时间复杂度,有什么好点子好方法么?更新: 原题是RFID网络冗余阅读器去除算法,即要去除掉系统网络中冗余的阅读器,就是图中的红色圈圈,下图是已经去除后的效果。【算法执行结果图如下】
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏5(财富值+成长值)
屋石
2015-04-20 · TA获得超过5355个赞
知道大有可为答主
回答量:1909
采纳率:86%
帮助的人:926万
展开全部
你得先简要介绍这个算法,是做什么的,不然如何改呢
追问
已补充题目,付算法介绍:
① definition:
cc(covered count) ——每个tag被reader覆盖的数量(黑点到红圈圆心的距离:D<=r)
nc(neighbor count)——每个reader邻居的数量(两个圆圈原点距离:L<=2*r)
ncc(neighbor cover count)——每个reader的邻居所覆盖的所有tag数量的总和
你回复下我我接着写,超字数了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式