冒泡排序实现

简介: 算法原理:冒泡排序是经过n-1趟子排序完成的,第 i 趟子排序从第1个数至第 n-i+1 个数,若第 i 个数比第 i+1 个数大,则交换这两个数,实际上这样经过 i 次子排序就使得 第1个数至第 n-i +1个数之间最大的数交换到了n-i+1 的位置上了。

算法原理:冒泡排序是经过n-1趟子排序完成的,第 i 趟子排序从第1个数至第 n-i+1 个数,若第 i 个数比第 i+1 个数大,则交换这两个数,实际上这样经过 i 次子排序就使得 第1个数至第 n-i +1个数之间最大的数交换到了n-i+1 的位置上了。实际上冒泡排序时可以优化的,那就是当第 i 次子排序并没有发生元素的交换时,就说明数组已经排好序了,以后的子排序就不用做了。
算法代码:

#include <iostream>

 using namespace std;

 void swap(int &x,int &y)
 {
     x = x^y;
     y = x^y;
     x = x^y;
 }

 void bubble_sort(int *arr,int n)
 {
     int i,j;
     for(i = n - 1 ; i > 0 ; --i)
     {
         bool flag = true;
         for(j = 0 ; j < i ; ++j)
         {
             if(arr[j] > arr[j+1])
             {
                 flag = false;
                 swap(arr[j],arr[j+1]);
             }
         }
         if(flag) //数组已经排好序没必要在继续进行其他子排序了
             break;
     }
 }

 int main()
 {
     int arr[] = {2,1,4,3,8,7,5,6};
     bubble_sort(arr,8);
     for(int i = 0 ; i < 8 ; ++i)
     {
         cout<<arr[i]<<" ";
     }
     cout<<endl;
     return 0;
 }

小结:冒泡排序算法的时间复杂度是O(n^2),同时冒泡排序也是稳定的,并且属于原地排序,排序的效率取决于逆序对的多少。采用一点小优化也加速了冒泡排序。

目录
相关文章
|
Linux 数据安全/隐私保护 Shell
centos7在忘记密码的情况下修改密码
centos7在忘记密码的情况下修改密码: 1、在重启系统过程中,快速在键盘上的上下键, 之后按下e键,进入编辑模式 2、在编辑模式,移动光标到LANG=en_US.
3758 0
|
机器学习/深度学习 并行计算 TensorFlow
GPU加速TensorFlow模型训练:从环境配置到代码实践的全方位指南,助你大幅提升深度学习应用性能,让模型训练不再等待
【8月更文挑战第31天】本文以随笔形式探讨了如何在TensorFlow中利用GPU加速模型训练,并提供了详细的实践指南。从安装支持GPU的TensorFlow版本到配置NVIDIA CUDA及cuDNN库,再到构建CNN模型并使用MNIST数据集训练,全面展示了GPU加速的重要性与实现方法。通过对比CPU与GPU上的训练效果,突显了GPU在提升训练速度方面的显著优势。最后,还介绍了如何借助TensorBoard监控训练过程,以便进一步优化模型。
2018 0
|
前端开发 Java 测试技术
【IDEA+通义灵码插件】实现属于你的大模型编程助手
【IDEA+通义灵码插件】实现属于你的大模型编程助手
1744 0
|
NoSQL API MongoDB
深入解读 MongoDB CDC 的设计与实现
阿里云实时计算 Flink 基于 Flink 1.17 的企业版 Flink 已正式发布,在该版本中 MongoDB CDC 连接器已开始公测,支持任意时间戳消费、完整事件流等功能。欢迎使用!
1149 0
深入解读 MongoDB CDC 的设计与实现
如何进行需求评审后续跟踪和更新?附模板
如何进行需求评审后续跟踪和更新?附模板
376 0
|
域名解析 安全 CDN
隐藏服务器真实IP的几种方法
隐藏服务器真实IP的几种方法
|
存储 消息中间件 SQL
数据开发流程及规范
P0\P1级别问题在规定时间内无法解决的,需要该问题的研发同学在问题comments内说明无法在规定时间内解决的合理的解释,并告知该问题具体的解决时间点同时邮件说明。
数据开发流程及规范
625.技术篇:移动postman安装包到其他盘
625.技术篇:移动postman安装包到其他盘
940 0
刷题之小蓝吃糖果和你究竟有几个好姐妹
刷题之小蓝吃糖果和你究竟有几个好姐妹
236 0
|
搜索推荐 大数据 BI
中台,很多人理解的都不对
最近中台比较热,但业界内并没有对中台有统一认可清晰的定义,很多人会把中台与数据仓库、数据湖混为一谈。但需要提醒读者注意的是,数据中台并不是一个系统,它首先是一种组织架构。
2680 0
中台,很多人理解的都不对

热门文章

最新文章