C# でバブルソート、カクテルソート、クイックソートを実行すると、3 つのコアすべてが AMD X3 (X4 には 1 つの壊れたコアが付属) で使用されていることがわかります。
なぜこうなった?私のアルゴリズムはシーケンシャルで、私のコードにはスレッド タグがありません。特に、非常に順次的なアルゴリズムである並べ替えアルゴリズムのようなものはありません。次のイベントが完了するまで、1 つのイベントは発生しません。アルゴリズムをどのように分割するのですか?
リクエストに応じて、たとえばバブルソート:
public void BubbleSort()
{
for (int i = 1; i < amount; i++)
{
for (int j = 0; j < a; j++)
{
if (numbers[j] > numbers[j + 1])
{
t = numbers[j + 1];
numbers[j + 1] = numbers[j];
numbers[j] = t;
}
}
a--;
}
}