欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > c++冒泡排序实现

c++冒泡排序实现

2025/4/20 17:52:30 来源:https://blog.csdn.net/Excalibur6/article/details/147353431  浏览:    关键词:c++冒泡排序实现

冒泡排序,实际上是将一个数组中从下标为i=0的元素开始,与他的下一个元素比较,如果是升序排列就把大的往后放。

这里数组就直接用stl的vector实现了,主要是练习冒泡排序:

采用双层嵌套的遍历方式,让每一个元素一层一层的和后面的元素进行比较,如果比他大就往上浮,过程就像泡泡慢慢浮出水面,故名冒泡排序,第一层是遍历i个元素,但他必须减去一个1,因为他始终要与他的下一个比较,最后一个元素是不用比较的,如果不减一会导致数组越界。

当一个元素遍历了一遍以后,就会回过头来遍历下一个元素依次和后面的元素比对,不用和他前面的比对,所以是-i-1。

有些人可能会看到我这个函数接受的是值传递,不是引用传递,这里我说一下,我是故意的,我只想这个函数排序输出他排序后的副本,不打算更改原来的数组。

下面是完整的程序:

template<typename T>
void bubblesort(vector<T> vec) {T temp;for (auto i = 0; i < vec.size()-1;++i) {for (auto j = 0; j < vec.size()-i-1; j++){if (vec[j]>vec[j+1]) {temp = vec[j+1];vec[j + 1] = vec[j];vec[j] = temp;}}}cout << "排序结果:";for (size_t k = 0; k < vec.size(); ++k) {cout << vec[k];if (k != vec.size() - 1) cout << ",";}cout << endl;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词