排序->冒泡排序

3.冒泡排序

1.冒泡排序基本思想

  数组从底部向上扫描,如果相邻的两个元素逆序,则交换两者,一次循环后,最小的元素就到了

数组的顶部,堆剩下的元素执行同样的操作,直到所有元素就绪。

2.代码  

template <typename T>
void bubble_sort(vector<T> &vec)
{
    for(int i=0;i<vec.size()-1;i++)
        for(int j=vec.size()-1;j>i;--j)
            if(vec.at(j) < vec.at(j-1))
                swap(vec.at(j),vec.at(j-1));
}

3.时空复杂度分析

  时间复杂度:外层循环了n-1次,内层循环从n-1到1递减,从复杂度上,次数与n相关,时间复杂度为O(n2);

  空间复杂度 :S(1);

 

posted @ 2017-04-12 15:10  是召不是昭  阅读(117)  评论(0编辑  收藏  举报