1
私の数学の割り当てには、いくつかの形式のソートアルゴリズムを開発する必要があります。バブルソートという "簡単な"方法から始めます。C++でのバブルソートアルゴリズムの問題
私は2つのリストがあります:
3.3 5 9.89 -6
と
-564 1340 42 129 858 1491 1508 246 -1281 655 1506 306 290 -768 116 765 -48 -512 2598 42 2339
を私は簡単に最初のものを並べ替えることができんだけど、1秒間の問題を半ばソートしています。
ここは、並べ替えを処理する小さなコードです。私は私のアルゴリズムで間違って行くんでした
-1281 -564 42 129 246 858 1340 1491 655 1508 1506 306 290 -768 116 765 -48 -512 2598 42 2339
:あなたはそれが半ば方法をソートされて停止する見ることができるようにここで
int bubbleSort(std::list<double> list)
{
std::list<double>::iterator it; // First iterator i
std::list<double>::iterator it2; // Second iterator i+1
int comp = 0;
it = list.begin();
it2 = list.begin();
it2++;
for (int i = list.size() - 1; i > 0; --i)
{
for (int j = 0; j < i; j++)
{
comp++;
if (*it2 < *it) // If my second item is smaller than my first one, swap them
{
std::swap(*it2, *it);
it = list.begin();
it2 = list.begin();
it2++;
break;
}
it++;
it2++;
}
}
return comp;
}
は、私が得るoutputedリストのですか?
たぶん、あなたがブレークするのではなく、継続使用する必要があります。 – Unick
それははるかに理にかなっています、ありがとうございます。しかし、それをソートするために必要な量の比較を行ってもソートは行われないようです(正確には210)。 –
私は並べ替えを行うために 'std :: swap'を使っています。 –