並べ替えアルゴリズムを実行しています。
整数の行列があり、その中のすべての整数が1000未満であることを知っています
。行を削除する(を使用x(10,:) = []
)か、行のすべてのスロットに無効な値、たとえば1001を入れる方がよいでしょうか。
ここで効率を考えています。
並べ替えアルゴリズムを実行しています。
整数の行列があり、その中のすべての整数が1000未満であることを知っています
。行を削除する(を使用x(10,:) = []
)か、行のすべてのスロットに無効な値、たとえば1001を入れる方がよいでしょうか。
ここで効率を考えています。
比較のために、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
評決: 値を挿入します。行を削除すると、マトリックスの再配置に関係がある可能性があるためだと思います。ソート時に、アルゴリズムが「不正な値」に一度だけ触れることを確認してください。そうしないと、問題を解決するために複雑な大規模な計算を行う必要があります