私はこのコードをC言語で書いたので、実行には時間がかかります。それを改善する方法はありますか? 私がしたいのは、各行の値を合計し、その値をベクトルに保存することです。このコードでは、i1は行列の行の位置、列および関連する値を含む値です。 i1はソートされません。c(疎行列表現)のコードを改善する
while(a < 2*var)
{
for (int c=0; c < 2*var; c++)
{
if (i1[c][0] == a)
{
diag[b] += i1[c][2];
}
}
a = a+1;
b = b+1;
}
ご意見やご提案は大変ありがとうございます。ありがとうございました。
スタックオーバーフローは、コードを動作していないに特化しています。 [Code Review On-Topic Check](http://codereview.stackexchange.com/help/on-topic)の6つの質問すべてに「はい」と回答することができれば、[codereview.se] 。 – usr2564301
あなたが投稿したコードの計算量は 'O(N^2)'です。私は、マトリックスに含まれるデータの構造を知らなくても、どのように改善できるのか分かりません。計算の複雑さを改善するための戦略は、マトリックスの内容について仮定できることに大きく依存します。 –