我正在爲我的介紹性C++類做一個插入排序,它似乎在工作,但我不斷在重新排序列表中排序。插入排序問題
在主
Storage s;
for (int i = 0; i < 20000; ++i)
{
cout << "adding " << iss[i] << " to sorted list" << endl;
s.Add(iss[i]);
}
和Storage.cpp
void Storage::Add(int num)
{
it = mylist.begin();
if (mylist.empty())
{
Node tem(num);
mylist.push_front(tem);
}
else
{
while (it != mylist.end())
{
if (num < (*it).GetNumber())
{
Node temp(num);
mylist.insert(it, temp);
}
it++;
if (it == mylist.end())
{
Node te(num);
mylist.push_back(te);
}
}
}
it = mylist.begin();
while (it != mylist.end())
{
cout << (*it).GetNumber() << ',';
it++;
}
cout << endl << mylist.size() <<endl;
}
Node
只存儲正被添加到列表中,以及所述時間,這是內部Node
計算的數量。
我不明白爲什麼我得到重複,在此先感謝幫助。
你試過調試嗎?嘗試瀏覽代碼並觀察發生了什麼。 – crashmstr