冒泡排序法 C++

实在是想感叹一下,因为一个很简单的东西,自己在网上找了半天反而弄的很复杂,逻辑性太强,小白实在是看不懂。因此,下面是一个最小白的冒泡排序的实现方式。

时间复杂度o(n*n)。

逻辑分析:

依次比较数组中的两个元素,较小的放在前面,较大的放在后面。

重复上面步骤,对,一直重复第一个步骤直到排序完成为止。

实例分析:

输入数组:

9 8 7 6 5 4 3 2 1 0

第一次循环

8 7 6 5 4 3 2 1 0 9

分析一下,怎么久到这儿来的,首先比较9和8,9后移,数组变成8 9 7 6 5 4 3 2 1 0,继续比较9和7,然后9又后移,移呀移,就到最后啦。

第二次循环
7 6 5 4 3 2 1 0 8 9

第三次循环
6 5 4 3 2 1 0 7 8 9

第四次循环
5 4 3 2 1 0 6 7 8 9

第五次循环
4 3 2 1 0 5 6 7 8 9

第六次循环
3 2 1 0 4 5 6 7 8 9

第七次循环
2 1 0 3 4 5 6 7 8 9

第八次循环
1 0 2 3 4 5 6 7 8 9

第九次循环
0 1 2 3 4 5 6 7 8 9

第十次循环
0 1 2 3 4 5 6 7 8 9

#include<iostream>
#include<cstdlib>using namespace std;void swap(int &a, int &b)
{int temp = a;a = b;b = temp;
}void bubbleSort(int a[],  int length)
{for (int j = 0; j < length - 1; j++){for (int i = 0; i<length - 1; i++){if (a[i] > a[i + 1]){swap(a[i], a[i + 1]);}}for (int i = 0; i < 10; i++){cout << a[i] << " ";}cout << endl;}}int main()
{int a[] = { 9,8,7,6,5,4,3,2,1,0 };bubbleSort(a, 10);for (int i = 0; i < 10; i++){cout << a[i] << " ";}cout << endl;system("pause");return 0;}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/313008.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

“兼职”运维的常用命令

自从产品转到了 dotNET Core 之后&#xff0c;更深入的接触 Linux和 Docker &#xff0c;而我每天的工作中&#xff0c;有一部分时间相当于在“兼职”做一些运维的事情。下面是一些在日常中常用的命令&#xff0c;算是个备忘吧。环境操作系统&#xff1a;CentOS7Docker&#xf…

选择排序 C++

选择排序的时间复杂度为o(n*n)&#xff0c;空间复杂度为o(n)。 逻辑分析&#xff1a; 1 假设数组中的最小数为a[0]&#xff0c;然后比较数组中其他数与a[0]的大小&#xff0c;若a[i]<a[0]&#xff0c;则交换两者为止&#xff0c;如此循环下来&#xff0c;最小的数字就存在…

rabbitmq死信队列详解与使用

先从概念解释上搞清楚这个定义&#xff0c;死信&#xff0c;顾名思义就是无法被消费的消息&#xff0c;字面意思可以这样理解&#xff0c;一般来说&#xff0c;producer将消息投递到broker或者直接到queue里了&#xff0c;consumer从queue取出消息进行消费&#xff0c;但某些时…

归并排序算法 C++

感谢博客https://blog.csdn.net/a130737/article/details/38228369 归并排序的时间复杂度为o(nlgn)&#xff0c;空间复杂度为o(n)。是一种采用分治思想的排序方法。 逻辑分析&#xff1a; 假设输入数组a[] { 2, 1, 4, 5, 3, 8, 7, 9, 0, 6 }。 首先将数组二分成两个数组le…

使用ASP.NET Core 3.x 构建 RESTful API - 3.2 开始建立Controller和Action

Demo下面我们就来实践一下。打开之前的项目&#xff0c;并建立CompaniesController&#xff1a; 这里有6个地方比较关键&#xff0c;我们挨个看一下&#xff1a; RESTful API 或者其它Web API的Controller都应该继承于 ControllerBase 这个类&#xff08;点此查看详细的官方文档…

C++ 链表

线性表&#xff08;顺序表&#xff09;有两种存储方式&#xff1a;链式存储和顺式存储&#xff0c;顺式存储如数组&#xff0c;其内存连续分配&#xff0c;且是静态分配。链式存储&#xff0c;内存是不连续的&#xff0c;且是动态分配。前一个元素存储数据&#xff0c;后一个元…

波拉契尔数列 C++

题目&#xff1a;写一个函数&#xff0c;输入n, 求斐波那契数列的第n项。 分析&#xff1a;该题有两种实现方式递归或循环。当n比较大的时候f(n)结果也会比较大&#xff0c;故定义的时候可以采用long(int 也行)。递归会有大量的重复计算&#xff0c;而循环可以把f(n-1)和f(n-2)…

Deepin 下 使用 Rider 开发 .NET Core

国产的 Deepin 不错&#xff0c;安利一下。Deepin 用了也有一两年&#xff0c;也只是玩玩&#xff0c;没用在开发上面。后来 Win10 不太清真了&#xff0c;就想着能不能到 Deepin下撸码。要搞开发&#xff0c;首先少不了 IDE&#xff0c;VS2019 用不来&#xff0c;Vs Code 太复…

求旋转数组的最小数字C++

发现还是数组这种最简单的编码才适合我&#xff0c;遇到树&#xff0c;链表这些真的是一头雾水&#xff0c;自己也不知道怎么实现。言归正传&#xff0c;该篇文章介绍如何求旋转数组的最小值&#xff0c;求最大值可以适当改编即可。 什么是旋转数组呢&#xff0c;就是将一个数…

[视频演示].NET Core开发的iNeuOS物联网平台,实现从设备PLC、云平台、移动APP数据链路闭环...

此次我们团队人员对iNeuOS进行了全面升级&#xff0c;主要升级内容包括&#xff1a;&#xff08;1&#xff09; 设备容器增加设备驱动&#xff0c;包括&#xff1a;西门子&#xff08;S7-200smart、S7-300、S7-400、S7-1200、S7-1500&#xff09;、三菱&#xff08;FxSerial…

707 设计单链表

第一次完成这样的设计&#xff0c;一路磕磕碰碰&#xff0c;遇到了许多问题&#xff0c;最后终于一一解决了。感恩https://blog.csdn.net/lym940928/article/details/81276658 题目如下&#xff1a; 设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两…

选择开源项目什么最重要?

开发人员在决定是否使用某个开源项目时考虑到的最重要事项是什么&#xff1f;代码质量&#xff1f;安全性&#xff1f;好的文档&#xff1f;上述因素都很重要&#xff0c;但根据 Tidelift 和 The New Stack 的联合调查&#xff0c;控制着开源项目的开源许可证才是最需要考量的因…

leetcode 二进制求和 addBinary

题目描述&#xff1a; 给定两个二进制字符串&#xff0c;返回他们的和&#xff08;用二进制表示&#xff09;。 输入为非空字符串且只包含数字 1 和 0。 示例 1: 输入: a "11", b "1" 输出: "100" 示例 2: 输入: a "1010", b…

居然不知道和的区别?

前言那年刚找工作那会&#xff0c;就碰到过这么一个简单的题目“&和&&的区别” 那时知识面窄&#xff0c;大概也就知道1.都是作为逻辑与的运算符。2.&&具有短路功能&#xff0c;计算出前者false&#xff0c;就不需计算后者的true or false。后来在微信群里…

两数之和,输入有序数组 leetcode C++

给定一个已按照升序排列 的有序数组&#xff0c;找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2&#xff0c;其中 index1 必须小于 index2。 说明: 返回的下标值&#xff08;index1 和 index2&#xff09;不是从零开始的。你可以假设每…

【DevOps进行时】自动化测试之单元测试

在DevOps建设中&#xff0c;主流的测试分层体系可以分为单元测试、接口测试和界面测试。Google曾提出一个经验法则&#xff1a;70%的小型测试&#xff0c;20%的中型测试&#xff0c;10%大型测试。当然&#xff0c;这个比例不是确定的&#xff0c;不同类型的项目&#xff0c;测试…

反转字符串中的单词 III leetcode

给定一个字符串&#xff0c;你需要反转字符串中每个单词的字符顺序&#xff0c;同时仍保留空格和单词的初始顺序。 示例 1: 输入: "Lets take LeetCode contest" 输出: "steL ekat edoCteeL tsetnoc" 注意&#xff1a;在字符串中&#xff0c;每个单词由单…

Zongsoft.Data 发布公告

很高兴我们的 ORM 数据访问框架(Zongsoft.Data)在历经两个 SaaS 产品的应用之后&#xff0c;今天正式宣布对外推广。它是一个类 GraphQL 风格的 ORM(Object/Relational Mapping) 数据访问框架。又一个轮子&#xff1f;在很长时间里&#xff0c;.NET 阵营似乎一直缺乏一个被普遍…

leetcode 旋转数组

给定一个数组&#xff0c;将数组中的元素向右移动 k 个位置&#xff0c;其中 k 是非负数。 示例 1:输入: [1,2,3,4,5,6,7] 和 k 3 输出: [5,6,7,1,2,3,4] 解释: 向右旋转 1 步: [7,1,2,3,4,5,6] 向右旋转 2 步: [6,7,1,2,3,4,5] 向右旋转 3 步: [5,6,7,1,2,3,4] 示例 2…