算法学习

本人机械科研dog一枚,对算法感兴趣。这是我自学算法的记录。
第一天:冒泡排序

文章目录

  • 算法学习
  • 一、冒泡排序原理?
  • 二、核心代码
  • 三、算法复杂度分析

一、冒泡排序原理?

1、从后往前依次比较相邻的元素。若是要按照升序排序,则后面的元素比前面的小,就交换这2个元素;降序则相反。

2、对每一对相邻元素作同样的工作,从第一对到最后一对。进行一轮比较交换下来,最后的元素就会是最小(或最大)的数了,这个数就不用参与后面的比较操作了。

3、针对所有的元素重复以上的步骤。

4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
例子如下

二、核心代码

该代码已经进过测试,稳定有效

//函数写在Algorithm这个类里面了,并且是用模板方式编写
//这是为了函数能适应各种类型的数据
template<class T1>
vector<T1> Algorithm::bubblesort(vector<T1> array)
{int len = array.size();for(int i=0;i<len-1;i++)//n-1次冒泡{for(int j = 0;j<len-1-i;j++)//每一次冒泡需要两两比较len—1-i次{//交换两数操作int tem =  array[j+1];if(array[j] < array[j+1])//从小到大就大于号,从大到小就小于号{array[j+1] = array[j];array[j] = tem;}}}return  array;}

三、算法复杂度分析

冒泡排序因为进行了两次嵌套循环,其复杂度是O(n2)。这种复杂度对于大量数据的排序所花费的时间是不能忍受的,所以用的并不多,下一节将要学习最常用的排序算法:快速排序,其平均算法复杂度为O(nlogn)

冒泡排序(C++)完整代码相关推荐

  1. python实现冒泡排序完整算法_利用python实现冒泡排序算法实例代码

    利用python实现冒泡排序算法实例代码 冒泡排序 冒泡排序(英语:Bubble Sort)是一种简单的排序算法.它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.遍历数 ...

  2. 校运动会c语言程序编写,校运动会管理系统报告C语言(含完整代码)

    <校运动会管理系统报告C语言(含完整代码)>由会员分享,可在线阅读,更多相关<校运动会管理系统报告C语言(含完整代码)(20页珍藏版)>请在人人文库网上搜索. 1.目 录陈一. ...

  3. java做a_Java编程实现A*算法完整代码

    前言 A*搜寻算法俗称A星算法.这是一种在图形平面上,有多个节点的路径,求出最低通过成本的算法.常用于游戏中 通过二维数组构建的一个迷宫,"%"表示墙壁,A为起点,B为终点,&qu ...

  4. 经典十大排序算法(含升序降序,基数排序含负数排序)【Java版完整代码】【建议收藏系列】

    经典十大排序算法[Java版完整代码] 写在前面的话 十大排序算法对比 冒泡排序 快速排序 直接选择排序 堆排序 归并排序 插入排序 希尔排序 计数排序 桶排序 基数排序 完整测试类 写在前面的话   ...

  5. 【YOLOV4】(7) 特征提取网络代码复现(CSPDarknet53+SPP+PANet+Head),附Tensorflow完整代码

    各位同学好,今天和大家分享一下如何使用 TensorFlow 构建YOLOV4目标检测算法的特征提取网络. 完整代码在我的Gitee中,有需要的自取:https://gitee.com/dgvv4/y ...

  6. 【神经网络】(19) ConvNeXt 代码复现,网络解析,附Tensorflow完整代码

    各位同学好,今天和大家分享一下如何使用 Tensorflow 构建 ConvNeXt 卷积神经网络模型. 论文地址:https://arxiv.org/pdf/2201.03545.pdf 完整代码在 ...

  7. 【图像分类案例】(2) DenseNet 天气图片四分类(权重迁移学习),附Tensorflow完整代码

    各位同学好,今天和大家分享一下使用 Tensorflow 构建 DenseNet 卷积神经网络模型,并使用预训练模型的权重,完成对四种天气图片的分类. 完整代码在我的 Gitee 中,有需要的自取: ...

  8. 【图像分类案例】(1) ResNeXt 交通标志四分类,附Tensorflow完整代码

    各位同学好,今天和大家分享一下如何使用 Tensorflow 构建 ResNeXt 神经网络模型,通过案例实战 ResNeXt 的训练以及预测过程.每个小节的末尾有网络.训练.预测的完整代码.想要数据 ...

  9. 【神经网络】(18) EfficientNetV2 代码复现,网络解析,附Tensorflow完整代码

    各位同学好,今天和大家分享一下如何使用 Tensorflow 搭建 EfficientNetV2 卷积神经网络模型. EfficientNetV2 在 EfficientNetV1 的基础上进行了改进 ...

  10. 【神经网络】(17) EfficientNet 代码复现,网络解析,附Tensorflow完整代码

    各位同学好,今天和大家分享一下如何使用 Tensorflow 复现 EfficientNet 卷积神经网络模型. EfficientNet 的网络结构和 MobileNetV3 比较相似,建议大家在学 ...

最新文章

  1. @OneToMany
  2. 深度学习在视觉搜索和匹配中的应用
  3. iOS 7 — navigationController is setting the contentInset and ContentOffset of my UIScrollView
  4. python基础语法手册format-Python基础语法-格式化输出
  5. openssl下开发sm4-gcm-ciphers
  6. 小马儿随笔——实地参观A级数据中心
  7. Educational Codeforces Round 30 C
  8. [转载]unix环境高级编程备忘:理解保存的设置用户ID,设置用户ID位,有效用户ID,实际用户ID...
  9. Odoo10教程 -- 主题教程
  10. 在C#中动态地添加控件
  11. SQL区分大小写——转载
  12. 博客园鼠标点击烟花特效
  13. Guava--Joiner使用方式以及java8实现Joiner
  14. 基于图像识别测试手机浏览器打开网页首屏时间的方法
  15. 海尔微型计算机硬盘如何拆卸,海尔xqb507288拆解图
  16. Python特殊运算符号(幂运算,除法运算)
  17. python-pygame与pymunk-倒塌解压金字塔
  18. 【Python + selenium】在浏览器打开新页签
  19. CS5266 Type-c转HDMI4K30HZ
  20. 我国建成世界第一超级计算机,国防科大研制出超级计算机 运算性能世界第一...

热门文章

  1. 循环播放背景音乐 html,js背景音乐循环播放代码(多浏览器支持)
  2. hdu-4466-Triangle 数学题
  3. QT实现播放wmv视频文件QMediaPlayer_QVideoWidget
  4. 基于python的网上订餐系统论文模板
  5. 在 Python 中使用蒙特卡罗方法预测股票价格,使用蒙特卡罗模拟确定明年 SPY 最有可能的价格
  6. python 数据挖掘 之 对数据进行简单预处理(1)
  7. Log - Log日志入参
  8. 导热系数和传热系数区别
  9. 【Spring 源码阅读】Spring IoC、AOP 原理小总结
  10. 用Python生成一个上三角矩阵