我正在运行排序算法。
我有一个整数矩阵,我知道它中的所有整数都小于1000
是删除行(使用x(10,:) = []
)还是在行中的每个插槽中添加无效值(例如1001)更好?
我在这里考虑效率。
答案 0 :(得分:1)
为了便于比较,只需运行tic / toc。
X = randn(1000);
time1 = 0;
for i= 1:100
X = randn(1000);
tic
X(10,:) = [];
a = toc;
time1 = time1 +a;
end
time2 = 0;
for i= 1:100
X = randn(1000);
tic
X(10,:) = 1001;
a = toc;
time2 = time2 +a;
end
disp ([time1 time2])
0.3882 0.0026
判决:插入值。我猜是因为删除一行可能与重新排列矩阵有关。只需确保在排序时,您的算法只触及“非法值”一次,否则您需要执行一些复杂的大O计算来解决您的问题