#include <iostream>
#include <list>
#include <algorithm>
using namespace std;
template< typename T >
void BubbleSort(list<T>& li)
{
list<T>::iterator it_left = li.begin();
list<T>::iterator it_right = li.begin();
it_right++;
bool f_sorted = false;
do
{
f_sorted = false;//为false表示循环不必再进行
//两个itor
it_left = li.begin();
it_right = li.begin();
it_right++;
while (it_right != li.end())
{//内循环,遍历一遍
if (*it_left > *it_right)
{
swap(*it_left, *it_right);
f_sorted = true;
}
it_left++;
it_right++;
}
} while (f_sorted);//当遍历一遍后没有可交换的了,则跳出大循环
}
bubble sort 冒泡排序
原文:http://www.cnblogs.com/ssy-zju/p/4625227.html