C++冒泡排序

引言

冒泡排序作为排序中一个比较重要的方法,这里做一些简单的记录。

示例

本例中将一组数据2,4,3,8,5按照从小到大的顺序进行冒泡排序。首先说一下,冒泡排序是怎么排序的:将数组中相邻的两个元素进行比较,按照排序的要求(从小到大或者从大到小),不符合排序要求的相邻两个元素进行交换,第一趟相邻元素之间两两比较,直到倒数第二个元素与最后一个元素比较后,第一趟比较结束,然后从第一个元素开始相邻两个元素之间比较,直到倒数第二个元素与倒数第一个元素比较后,第二趟比较结束,以此类推,总共执行n-1趟。以上可以从左边开始也可以从右边开始相邻两元素的比较,但只能按照统一的方向开始,不能排序中混合使用开始方向。下面来看具体的实现代码,一下是在vs2010下创建的控制台程序,自动添加预编译头:
BubbleSort.cpp

// BubbleSort.cpp : 定义控制台应用程序的入口点。
///************************************************************************/
/* 功能:冒泡排序(2 4 3 8 5)按从小到大的顺寻排列功能函数:void swap(int &a,int &b)   实现两个整型变量之间交换值void bubbleSort(int *ptrr,int n)  实现冒泡排序void printArr(int *ptrr,int n) 实现输出数组元素*/
/************************************************************************/#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
using namespace std;void swap(int &a,int &b)
{int temp;temp = a;a = b;b = temp;
}void bubbleSort(int *ptrr,int n)
{for (int i = 0; i < n-1; ++i)//排n-1趟{for (int j = 0; j < n-1-i; ++j)//每一趟的排序{if (ptrr[j] > ptrr[j+1])//相邻两个元素之间进行比较,按从小到大的顺序{swap(ptrr[j],ptrr[j+1]);}}}
}void printArr(int *ptrr,int n)
{for(int i = 0; i < n; ++i){cout<<ptrr[i]<<"\t";}
}int _tmain(int argc, _TCHAR* argv[])
{int arr[] = {2,4,3,8,5};printArr(arr,5);cout<<endl;bubbleSort(arr,5);printArr(arr,5);cout<<endl;system("pause");return 0;
}

以上是实现代码。
项目的结构如下:
在这里插入图片描述
运行结果:
在这里插入图片描述
参考冒泡排序的动画图所在博文:
https://blog.csdn.net/liuzuoping/article/details/103375996

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

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

相关文章

阿里云技术专家入选Apache Member;百度Q1财报:营收241亿元;华为面向全球发布AI-Native数据库……...

戳蓝字“CSDN云计算”关注我们哦&#xff01;嗨&#xff0c;大家好&#xff0c;重磅君带来的【云重磅】特别栏目&#xff0c;如期而至&#xff0c;每周二第一时间为大家带来重磅新闻。把握技术风向标&#xff0c;了解行业应用与实践&#xff0c;就交给我重磅君吧&#xff01;重…

c++选择排序

引言 选择排序就是找出每趟中的最小值或者最大值与对应趟数位置上的数值进行交换&#xff0c;从而排序&#xff0c;具体像序列&#xff1a;2&#xff0c;5&#xff0c;4&#xff0c;3&#xff0c;8若按照从小到大的顺序选择排序&#xff0c;总共5个元素&#xff0c;需要进行5-…

C++快速排序(二)

引言 此文继上一次的c快速排序之后&#xff0c;是时隔一年后的重新领悟。快速排序就是从一列序列中选择一个数作为基数&#xff0c;一般以左边第一个元素为基数&#xff0c;然后定义两个变量left与right,left指向左边第一个元素&#xff0c;与基数指向相同&#xff0c;right指…

如何看待“英特尔是一家软件公司”?

戳蓝字“CSDN云计算”关注我们哦&#xff01;1968年7月&#xff0c;传奇半导体公司仙童的两位共同创办人罗伯特诺伊斯、高登摩尔从仙童请辞&#xff0c;共同创办了以“INTegrated ELectronics&#xff08;集成电子&#xff09;”前缀为名的一家电子公司&#xff0c;这家公司就是…

C++插入排序

引言 插入排序就是将一个序列中第一个元素&#xff0c;认为是有序数组&#xff0c;该数组含一个元素&#xff0c;剩下的元素构成一个无序数组&#xff0c;将无序数组中元素逐一与有序数组中最后一个元素开始向前比较&#xff0c;根据具体的从大到小的顺序或者从小到大的顺序&a…

日常软件安装

软件安装专栏总览 文章目录一、JDK安装1.1下载、安装一路next1.2 配置环境变量1.2.1. 新建系统变量JAVA_HOME1.2.2. 创建CLASSPATH环境变量1.2.3. 编辑Path环境变量1.2.4. 验证1.2.5. 验证javac一、JDK安装 1.1下载、安装一路next 1.2 配置环境变量 1.2.1. 新建系统变量JAVA…

Java 动态加载类

Class.forName(“类的全称”); 不仅表示类的类类型&#xff0c;还代表了动态加载类 请大家区分编译、运行 编译时刻加载类时静态加载类、运行时刻加载类时动态加载类 编写一个Office.java文件&#xff0c;在类中创建2个不存在的对象Word和Excel&#xff0c; public class Off…

升级为私有全栈云的腾讯云TStack究竟强在了哪儿?

戳蓝字“CSDN云计算”关注我们哦&#xff01;在刚刚结束的美国丹佛Open Infrastructure峰会上&#xff0c;腾讯云对全新升级为私有全栈云的TStack进行了详细的介绍&#xff0c;引起峰会现场众多OpenStack专业人士侧目。那么&#xff0c;这款腾讯基于OpenStack倾力打造的私有云解…

C++中继承与虚函数示例

引言 此文记录以下虚函数和继承的一个示例。 示例 class Base {virtual void method(){std::cout<<"from base"<<std::endl;} public:virtual ~Base(){method();}void baseMethod(){method();} };class A:public Base {void method(){std::cout<&l…

漫画:图的 “多源” 最短路径

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;————— 第二天 —————小灰的思路如下&#xff1a;第一步&#xff0c;利用迪…

C++实现单链表的反序

引言 将一个没有空结点作为头的单链表实现反转。其实质就是将结点的指针域指向反转。定义指向当前结点的指针&#xff0c;指向前一个结点的指针&#xff0c;指向当前结点的后一个结点的指针&#xff0c;这个过程中包含只有一个结点的单链表&#xff0c;那么反转之后还是它本身…

vs2010中引入boost库

引言 在vs2010中无法使用C11中的大多数特性&#xff0c;像mutex互斥锁&#xff0c;要想使用需要引入boost库。下面记录一下boost库引入到vs2010中。 实现 分为以下几步&#xff1a; 下载boost压缩包 可以采用下面的地址下载适合自己的版本。下载地址&#xff1a; https://…

立足国产自主可控技术 达梦DM8数据库新品化繁为简

戳蓝字“CSDN云计算”关注我们哦&#xff01;面对技术日新月异的发展&#xff0c;如今俨然已经演变成为数据发展引来的潮流&#xff0c;而数据库的建立对企业的发展有着举足轻重的作用&#xff0c;对数据库的有效开发和管理是企业正常运行的保障&#xff0c;作为现代化经济发展…

C++中关于隐藏的理解

引言 在使用中弄清楚隐藏的区别之后&#xff0c;还需要明白怎么使用。下面说以下隐藏&#xff0c;重写&#xff0c;重载的区别&#xff1a; 与重载的区别&#xff1a; 在父类与子类中&#xff0c;函数名相同&#xff0c;参数不同&#xff0c;无论父类中的同名函数是否含有virt…

183条地铁线路,3034个地铁站,发现中国地铁名字的秘密。

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;作者&#xff1a;小F转载&#xff1a;法纳斯特最近看了新周刊的一篇推送&#xff0c;有…

创建Git仓库的三种形式

创建Git仓库的三种形式&#xff1a; 2种本地创建和远程拉取 文章目录1. 在idea中初始化仓库1.1. 进入目录&#xff0c;初始化仓库1.2. git init 目录名1.3.1 远程拉取1. 在idea中初始化仓库 1.1. 进入目录&#xff0c;初始化仓库 进入目录git init 创建test1目录&#xff0c;…

C++中常用字符串相关的编程题

索引 找出字符串中的数字&#xff0c;字母和符号&#xff0c;并分别存储 找出字符串中所有不重复的字符&#xff0c;并输出 统计字符串中每个字符的个数&#xff0c;并输出 编译环境 以下所用的开发环境是vs2010,创建的都为控制台输出程序。下面只贴出创建项目后修改了的c…

刷了一个半月算法题,我薪资终于Double了

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;前言很多人感觉大公司都是要手写算法&#xff0c;那刷题是必不可少了&#xff0c;你技…

创建版本库

什么是版本库呢&#xff1f;版本库又名仓库&#xff0c;英文名repository&#xff0c;你可以简单理解成一个目录&#xff0c;这个目录里面的所有文件都可以被Git管理起来&#xff0c;每个文件的修改、删除&#xff0c;Git都能跟踪&#xff0c;以便任何时刻都可以追踪历史&#…

mac上用qt调用自己生成的qt动态库,该动态库又依赖第三方库

qt下依赖于第三方库生成的动态库的调用概述基于声网的sdk如何在自己的动态库中使用使用基于第三方库的动态库下面看pro文件中的设置概述 初次使用mac上的qtCreator生成动态库&#xff0c;该动态库编写时调用了第三方库&#xff0c;基于生成的该动态库&#xff0c;编写测试程序…