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);