bubble sort 冒泡排序

#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);//当遍历一遍后没有可交换的了,则跳出大循环
}



posted on 2015-07-06 19:59  立顿经典醇  阅读(136)  评论(0)    收藏  举报

导航