我正在使用Matlab编写下面的代码。当您使参数变大时,完成运行需要花费太多时间。然后我想优化代码以使其运行更快。我还没有参加任何算法优化课程。但是我已经改变了它的一些部分。代码现在更快,但还不够。
你有想法的人让它更快吗?预分配,之前的初始化,无论是什么..
rand('state', sum(100*clock));
runs=10000;
bw=20000; ttimeout=303/bw; ts=20/bw;
sift_times=[];sift_tcolls=[];sift_tcws=[];
range_n=5;
for n = range_n
sift_collisions=[];
uniform_collisions=[];
for w=3:63
uniform_collision=0;
sift_collision=0;
for i=1:runs
%Sift Dist:
chosen_slots = sift_assign_slots(w,n);
[slots,nodes] = sort(chosen_slots);
if (slots(1)==slots(2))
sift_collision = sift_collision + 1;
end
%Uniform Dist:
chosen_slots = ceil(w*rand(n,1));
[slots,nodes] = sort(chosen_slots);
if (slots(1)==slots(2))
uniform_collision = uniform_collision + 1;
end
end
sift_collisions (w-2) = sift_collision ;
uniform_collisions(w-2) = uniform_collision ;
end
end