冒泡排序(Bubble Sort)一种交换排序,它的基本思想是:量量比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。

冒泡的实现细节上可以有很多种变换,下面是最基本的冒泡排序算法的C++实现。

#include <iostream>

using namespace std;
#define MaxSize 10

typedef struct 
{
int r[MaxSize+1];
int length;
}SqList;

void swap(SqList *L,int i,int j)
{
int temp=L->r[i];
L->r[i]=L->r[j];
L->r[j]=temp;  
}

void BubbleSort(SqList *L)
{
int len=L->length;
for(int i=0;i<len;i++)
 {
for(int j=i+1;j<len;j++)
{
if(L->r[i]>L->r[j])
                swap(L,i,j);
}
 }
}

void main()
{
   SqList L;
   SqList *p=&L;     //定义P为指向SqList数据类型的指针变量,并指向L。  注:L.length、(*p).length、p->length三者是等价的,“.”是成员运算符,“->”是指向运算符
   cin>>L.length;
   for(int i=0;i<L.length;i++)
    {
cin>>L.r[i];
    }
   BubbleSort(p);         //或BubbleSort(&L)     注:特别注意这里,实参应该是指针类型。
   for(int j=0;j<L.length;j++)
    {
cout<<L.r[j]<<" ";
    }

}

下面这种是通过返回值来实现的,主要区别是   L=BubbleSort(L);这里的内容

/*#include <iostream>
using namespace std;
#define MaxSize 10

typedef struct 
{
int r[MaxSize+1];
int length;
}SqList;

SqList swap(SqList L,int i,int j)
{
int temp=L.r[i];
L.r[i]=L.r[j];
L.r[j]=temp;
return L;      //如果不返回的话,只改变了形参,而实参L的值未改变
}

SqList BubbleSort(SqList L)
{
int len=L.length;
for(int i=0;i<len;i++)
 {
for(int j=i+1;j<len;j++)
{
if(L.r[i]>L.r[j])
                            L=swap(L,i,j);
}
 }
return L;
}

void main()
{
   SqList L;
   cin>>L.length;
   for(int i=0;i<L.length;i++)
    {
cin>>L.r[i];
    }
   L=BubbleSort(L);
   for(int j=0;j<L.length;j++)
    {
cout<<L.r[j]<<" ";
    }
}*/

C++冒泡排序(初级版)相关推荐

  1. html5 苹果 dock,基于JQuery模仿苹果桌面的Dock效果(初级版)

    新的一天新的开始,今天要分享的是用JQuery模仿苹果操作系统桌面的Dock效果,之所以称之为初级版,是因为其中还有一些bug,显示效果并不稳定.由于时间的关系,这些bug还没有修复,希望高手们不吝赐 ...

  2. python足球分析系统_NAO足球/高尔夫比赛视觉系统设计(python初级版)

    初级版的内容主要分为两部分,第一部分是如何利用NAO的视觉传感器,即上下摄像头,来获取图片及如何利用opencv显示获得的图片.第二部分是如何利用opencv里面的视觉算法从NAO获取的图片中找到所需 ...

  3. 支付29.9元,订阅付费专栏Matlab(初级版),免费送对应专栏代码1份

    尊敬的各位学友! 欢迎订阅本博客付费专栏Matlab电力系统(初级版).付费专栏华为杯(初级版). 付费专栏Matlab图像处理(初级版).付费专栏Matlab路径规划(初级版).付费专栏Matlab ...

  4. 视频教程-Word2016经典视频教程-初级版-Office/WPS

    Word2016经典视频教程-初级版 Office培训讲师,51CTO金牌讲师,从2005开始从事Office培训至今.擅长Excel.Word.PowerPoint等软件的应用,著有<Powe ...

  5. Word2016经典视频教程-初级版-曾贤志-专题视频课程

    Word2016经典视频教程-初级版-2108人已学习 课程介绍         Microsoft Office Word 从来都是流行的文字处理程序.本课程详细讲解了Word的文字排版功能,表格排 ...

  6. creo三维生成二维图_proe5.0原创工程图教程(1)-proe5.0三维图(3D)怎么转换二维图(2D)初级版...

    proe5.0三维模型(3D)怎么转换二维模型(2D)后可以转换成pdf和dwg,这些优势是其他软件无可比拟的.因为proe3d和2D是关联的,是参数化的.打个简单的比方,你3D的孔发生了变化,2d就 ...

  7. 井字游戏(C语言版) 初级版,我写的完美版在另一篇文章

    //井字游戏(C语言版) 初级版,我写的完美版在另一篇文章 #include <stdio.h> typedef char chess[10]; typedef int temparr[1 ...

  8. 游戏开发-2022-10-17-疯狂弹球初级版

    游戏引擎:Unity 编译版本:2020.3.40f1c1 VS2019 一.实现步骤 首先在unity中画出游戏界面,元素包含(玩家板,球,墙,砖块精灵) 如果想要实现游戏的初级功能,即玩家可以左右 ...

  9. Linux上隐藏进程名(初级版)

    缘起 上一篇博文 模仿nginx修改进程名 中提到了一种修改进程名的方法,就像 nginx 一样,给不同进程命名为 master 以及 worker 等.那么能不能把新进程名设置为空字符串呢?如果能, ...

最新文章

  1. 一致性哈希(Consistent Hashing)
  2. 如何备考上海市高等学校计算机一级,计算机一级考试备考攻略
  3. templateref html内容,angular之ng-template模板加载
  4. 深入理解JVM虚拟机(五):字节码指令简介
  5. 【iCore1S 双核心板_ARM】例程十六:USB_MSC实验——虚拟U盘
  6. 为啥你用@JsonFormat注解反序列化LocalDateTime总失败?
  7. java 路径 20,java中得到classpath和当前类的绝对路径的一些方法(路径中的%20进行替换空格)...
  8. leetcode1337. 方阵中战斗力最弱的 K 行(优先队列)
  9. ADB工具 获取ROOT权限及复制文件方法
  10. java css路径_java web开发中CSS路径有问题吗,运行jsp文件为什么找不到css文件?...
  11. exawear能运行java_VirSCAN.org-多引擎在线病毒扫描网 v1.02,当前支持 47 款杀毒引擎...
  12. Raki的读paper小记:Audio Captioning with Composition of Acoustic and Semantic Information
  13. MySQL数据库入门学习 #CSDN博文精选# #IT技术# #数据库# #MySQL#
  14. python滑动验证_Python实现图片滑动式验证识别方法
  15. JAVA中文件下载和文件批量下载方法
  16. lol7月9日服务器维护,英雄联盟7月9日更新维护到几点结束_lol7月9日10.14版本更新维护结束时间介绍_咖绿茵手游站...
  17. ubuntu安装photoshop
  18. 国内有哪些好的刷题网站?
  19. 通俗易懂说:snprintf scnprintf
  20. mysql数据库recover_xxx数据库恢复 mariadb数据库误删除恢复 mysql数据库被黑删库恢复

热门文章

  1. 华为 该软件被检测为风险软件_美团被华为标记为“病毒软件”,用户表示懵了,华为官方出面解释...
  2. 你要的六级成绩批量查询,它来啦......
  3. python如何写生日快乐图片_Python 生活第一周母校生日快乐
  4. java 表格树_00030-layui+java 树形表格treeTable
  5. TensorFlow 2 Object Detection API 教程: model 命名规则
  6. C++标准转换运算符:static_cast
  7. docker-ce-17.09 容器创建,运行,进入,删除,导入/导出
  8. Java微服务:这个画饼是个谎言,但你却不能忽视它
  9. V-Play入门手册3-如何编写高效的代码?
  10. 1、深入理解 Laravel Eloquent(一)——基本概念及用法