当前位置: 首页 > ds >正文

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

http://www.xdnf.cn/news/521.html

相关文章:

  • Java Web 之 简介 100问
  • 大模型时代:机遇与风险并存的AI革命
  • Java Stream API 实践指南:从基础操作到高效用法
  • 【操作系统原理03】处理机调度与死锁
  • 运筹学之模拟退火
  • 生成模型StackGAN模型详解
  • 高效的项目构建:用 Makefile 自动化你的构建过程
  • Mybatis源码01-SpringBoot启动时mybatis加载过程
  • U-Boot 启动过程详解
  • 杂记-2025年4月19日
  • Linux压缩与解压命令完全指南:tar.gz、zip等格式详解
  • JAVA 继承
  • 【EDA软件】【设计约束和分析操作方法】
  • 【AI提示词】经济学家
  • 使用Ingress发布应用程序
  • MySQL——事务
  • 【java实现+4种变体完整例子】排序算法中【快速排序】的详细解析,包含基础实现、常见变体的完整代码示例,以及各变体的对比表格
  • Day4-存储技术概述
  • csdn教程
  • 统信UOS1060中恢复默认出厂设置
  • 使用 YOLOv8 模型对外接摄像头(设备索引为 1)实时分析
  • 端口镜像,
  • Java InvalidClassException 深度解析
  • Linux网络编程——I/O多路转接(2)之 poll、epoll
  • Mesh模型孔洞修补算法总汇
  • 【大疆dji】什么是ESDK?
  • 腾讯云对象存储m3u8文件使用腾讯播放器播放
  • 【HDFS入门】HDFS性能调优实战:小文件问题优化方案
  • 基于Springboot+Mysql的的小区物业管理系统(含LW+PPT+源码+系统演示视频+安装说明)
  • 【web服务_负载均衡Nginx】三、Nginx 实践应用与高级配置技巧