C++冒泡排序(初级版)
冒泡排序(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++冒泡排序(初级版)相关推荐
- html5 苹果 dock,基于JQuery模仿苹果桌面的Dock效果(初级版)
新的一天新的开始,今天要分享的是用JQuery模仿苹果操作系统桌面的Dock效果,之所以称之为初级版,是因为其中还有一些bug,显示效果并不稳定.由于时间的关系,这些bug还没有修复,希望高手们不吝赐 ...
- python足球分析系统_NAO足球/高尔夫比赛视觉系统设计(python初级版)
初级版的内容主要分为两部分,第一部分是如何利用NAO的视觉传感器,即上下摄像头,来获取图片及如何利用opencv显示获得的图片.第二部分是如何利用opencv里面的视觉算法从NAO获取的图片中找到所需 ...
- 支付29.9元,订阅付费专栏Matlab(初级版),免费送对应专栏代码1份
尊敬的各位学友! 欢迎订阅本博客付费专栏Matlab电力系统(初级版).付费专栏华为杯(初级版). 付费专栏Matlab图像处理(初级版).付费专栏Matlab路径规划(初级版).付费专栏Matlab ...
- 视频教程-Word2016经典视频教程-初级版-Office/WPS
Word2016经典视频教程-初级版 Office培训讲师,51CTO金牌讲师,从2005开始从事Office培训至今.擅长Excel.Word.PowerPoint等软件的应用,著有<Powe ...
- Word2016经典视频教程-初级版-曾贤志-专题视频课程
Word2016经典视频教程-初级版-2108人已学习 课程介绍 Microsoft Office Word 从来都是流行的文字处理程序.本课程详细讲解了Word的文字排版功能,表格排 ...
- creo三维生成二维图_proe5.0原创工程图教程(1)-proe5.0三维图(3D)怎么转换二维图(2D)初级版...
proe5.0三维模型(3D)怎么转换二维模型(2D)后可以转换成pdf和dwg,这些优势是其他软件无可比拟的.因为proe3d和2D是关联的,是参数化的.打个简单的比方,你3D的孔发生了变化,2d就 ...
- 井字游戏(C语言版) 初级版,我写的完美版在另一篇文章
//井字游戏(C语言版) 初级版,我写的完美版在另一篇文章 #include <stdio.h> typedef char chess[10]; typedef int temparr[1 ...
- 游戏开发-2022-10-17-疯狂弹球初级版
游戏引擎:Unity 编译版本:2020.3.40f1c1 VS2019 一.实现步骤 首先在unity中画出游戏界面,元素包含(玩家板,球,墙,砖块精灵) 如果想要实现游戏的初级功能,即玩家可以左右 ...
- Linux上隐藏进程名(初级版)
缘起 上一篇博文 模仿nginx修改进程名 中提到了一种修改进程名的方法,就像 nginx 一样,给不同进程命名为 master 以及 worker 等.那么能不能把新进程名设置为空字符串呢?如果能, ...
最新文章
- 一致性哈希(Consistent Hashing)
- 如何备考上海市高等学校计算机一级,计算机一级考试备考攻略
- templateref html内容,angular之ng-template模板加载
- 深入理解JVM虚拟机(五):字节码指令简介
- 【iCore1S 双核心板_ARM】例程十六:USB_MSC实验——虚拟U盘
- 为啥你用@JsonFormat注解反序列化LocalDateTime总失败?
- java 路径 20,java中得到classpath和当前类的绝对路径的一些方法(路径中的%20进行替换空格)...
- leetcode1337. 方阵中战斗力最弱的 K 行(优先队列)
- ADB工具 获取ROOT权限及复制文件方法
- java css路径_java web开发中CSS路径有问题吗,运行jsp文件为什么找不到css文件?...
- exawear能运行java_VirSCAN.org-多引擎在线病毒扫描网 v1.02,当前支持 47 款杀毒引擎...
- Raki的读paper小记:Audio Captioning with Composition of Acoustic and Semantic Information
- MySQL数据库入门学习 #CSDN博文精选# #IT技术# #数据库# #MySQL#
- python滑动验证_Python实现图片滑动式验证识别方法
- JAVA中文件下载和文件批量下载方法
- lol7月9日服务器维护,英雄联盟7月9日更新维护到几点结束_lol7月9日10.14版本更新维护结束时间介绍_咖绿茵手游站...
- ubuntu安装photoshop
- 国内有哪些好的刷题网站?
- 通俗易懂说:snprintf scnprintf
- mysql数据库recover_xxx数据库恢复 mariadb数据库误删除恢复 mysql数据库被黑删库恢复
热门文章
- 华为 该软件被检测为风险软件_美团被华为标记为“病毒软件”,用户表示懵了,华为官方出面解释...
- 你要的六级成绩批量查询,它来啦......
- python如何写生日快乐图片_Python 生活第一周母校生日快乐
- java 表格树_00030-layui+java 树形表格treeTable
- TensorFlow 2 Object Detection API 教程: model 命名规则
- C++标准转换运算符:static_cast
- docker-ce-17.09 容器创建,运行,进入,删除,导入/导出
- Java微服务:这个画饼是个谎言,但你却不能忽视它
- V-Play入门手册3-如何编写高效的代码?
- 1、深入理解 Laravel Eloquent(一)——基本概念及用法