冒泡算法是最先接触的基础算法之一,是一种排序算法。
基本思想:依次对比序列的数,当前者的值比后者小时交换之间的值,最后结果最大的数将会放到序列末尾,如图所示:
以下是实现代码(C++):
//交换两个数之间的值
template<typename T>
void swap(T &prev, T &next)
{
T temp = prev;
prev = next;
next = temp;
}
//冒泡排序
template<typename T>
void bubbleSort(vector<T> &vec)
{
for(int i = 0; i<vec.size()-1; i++)
for(int j = 0; j<vec.size()-i-1; j++)
{
if(vec[j]>vec[j+1])
swap(vec[j],vec[j+1]);
}
}
将有一千个随机数的容器带入结果如下: