我正在使用下面的冒泡排序功能,并且使用
定义Container类型typedef std::vector<int> Container;
或
typedef std::list<int> Container;
我像这样编译代码
/ usr / bin / g ++ -g -Wall -fPIC -c -o bubble_sort.o bubble_sort.cc
当容器是一个列表时,该函数可以对约10000个整数进行排序 3.2秒当容器是向量时,该函数对于相同的类型大约需要4.6秒。
我的问题是为什么对于矢量而言性能差得多,以及哪些工具最适合挖掘这样的问题?
void bubbleSort(Container& randomIntegers)
{
bool swapPerformed;
do
{
swapPerformed = false;
Container::iterator iter2 = randomIntegers.begin();
Container::iterator iter1 = iter2++;
while (iter2 != randomIntegers.end())
{
if (*iter1 > *iter2)
{
std::swap(*iter1, *iter2);
swapPerformed = true;
}
iter1++;
iter2++;
}
}
while (swapPerformed);
}