一起talk C栗子吧(第二十六回:C语言实例--冒泡排序)

各位看官们,大家好,上一回中咱们说的是二分查找的例子,这一回咱们说的例子是:冒泡排序。闲话休

提,言归正转。让我们一起talk C栗子吧!

我们先来说说什么是排序,所谓的排序就是把容器中的元素依据一定的规则进行排列。我们还是像以前一

样举个日常生活中的例子来说明:现在学校里基本上都在搞军训,我想大家也参加过军训,在军训前肯定

会让大家排队,教官会让大家依据自己的身高从低到高进行排队,这样排出来的队列比较整齐。在排队的

过程中就使用了排序,参加军训的学生就是容器中元素,排序的规则就是教官定的:依据身高从低到高进

行排队。排序的结果就是一个整齐的军训队伍。我这么说,大家明白了吗?哪个“依据身高从低到高进行排

队”是怎么进行的?台下有看官在提问了,看官莫急,你问的问题就是咱们今天要说的内容,在编写程序的

时候有多种方法可以进行排序,咱们首先讲其中的一种:冒泡排序。

冒泡排序的基本原理为:依次比较容器中相邻的两个元素,如果这两个元素不符合排序的规则,那么交换

这两个元素在容器中的位置,直到窗口中所有相邻的元素都符合排序规则为止。

冒泡排序的实现步骤如下:

1.从容器头部到尾部遍历容器,遍历过程中取出相邻的两个元素进行比较;

2.如果这两个元素不符合排序的规则,那么交换这两个元素在容器中的位置;

3.如果这两个元素符合排序的规则,那么回到步骤1;

4.反复进行步骤1到步骤3,直到遍历完容器中所有的元素为止。

看官们,正文中就不写代码了,详细的代码放到了我的资源中,大家可以点击这里下载使用。冒泡排序的

优点就是简单易懂,而且容易实现。缺点就是性能相对较低。我在代码中对冒泡排序进行了优化,这样可

以提高冒泡排序的性能。

各位看官,关于冒泡排序的例子咱们就说到这里。欲知后面还有什么例子,且听下回分解。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-09 22:14:03

一起talk C栗子吧(第二十六回:C语言实例--冒泡排序)的相关文章

一起talk C栗子吧(第二十二回:C语言实例--队列一)

各位看官们,大家好,上一回中咱们说的是表达式求值的例子,该例子使用了栈,这一回咱们说的是栈的 兄弟:队列.闲话休提,言归正转.让我们一起talk C栗子吧! 我们在这里说的队列是一种抽象的数据结构,大家不用想的太抽象了,哈哈,其实它和我们日常生活中所 见的队列一样.不管怎么样,我们还是举一个容易理解的例子:大家在假期出去旅游的时候,都有过排队 买门票的经历吧.游客们在售票点的窗口前排成了一长串队列,售票人员先把门票卖给排在队列前面的游 客,买到门票的游客拿着门票兴高采烈地离开了队列,刚来到售票点

第二十六篇:USB3.0高带宽ISO(48KBytes/125us)实战

USB3.1技术已经推出, 10Gbps的速率足以满足数据, HD视频传输的要求. 要步入USB3.1的研发, 还得将USB3.0的基础打扎实. 微软提供的SUPER MUTT只包含一个接口0, 其下有两个ALT, ALT 1与ALT 2, 分别包含了两对ISO IN/OUT端点, 不过, 只有ALT 2下的ISO OUT EP的bMaxBurst为1, 而其它三个ISO EP的bMaxBurst均为0, 而所有的ISO EP的Mult均为0. 即只有一个ISO EP支持2KBytes/125u

“全栈2019”Java多线程第二十六章:同步方法生产者与消费者线程

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多线程第二十六章:同步方法生产者与消费者线程 下一章 "全栈2019"Java多线程第二十七章:Lock获取lock/释放unlock锁 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorha

第二十六个知识点:描述NAF标量乘法算法

第二十六个知识点:描述NAF标量乘法算法 NAF标量乘法算法是标量乘法算法的一种增强,该算法使用了非邻接形式(Non-Adjacent Form)表达,减少了算法的期望运行时间.下面是具体细节: 让\(k\)是一个正整数,\(P\)是一个在域\(F_q\)上椭圆曲线\(E\)上的点.这个计算乘法操作\(Q = k * P\)就是圆曲线上的标量乘法操作(点乘).一个最简单计算的方法就是基于双倍-加法的霍纳规则的变体.顾名思义,该方法最突出的两个构建块是点加倍和点添加原语.就像名字那样,算法也十分简

【WPF学习】第二十六章 Application类——应用程序的生命周期

原文:[WPF学习]第二十六章 Application类--应用程序的生命周期 在WPF中,应用程序会经历简单的生命周期.在应用程序启动后,将立即创建应用程序对象,在应用程序运行时触发各种应用程序事件,你可以选择监视其中的某些事件.最后,当释放应用程序对象时,应用程序将结束. 一.创建Application对象 使用Application类的最简单方式是手动创建它.下面的示例演示了最小的程序:在应用程序入口(Main()方法)处创建名为MainWindow的窗口,并启动一个新的应用程序: 在本质

QT开发(十六)——QT绘图实例-钟表

QT开发(十六)--QT绘图实例-钟表 一.钟表实现原理 钟表的实现需要设置定时器,定时器每隔一秒发送timeout()信号到QWidget::update()槽函数,update()槽函数将会重绘一次窗口,重写重绘事件函数paintEvent(QPaintEvent *event),根据获取的当前系统时间的时钟.分钟.秒钟重绘钟表的时针.分针.秒针. QTimer *timer = new QTimer(this); timer->start(1000);//一秒钟 connect(timer

一起talk C栗子吧(第十六回:C语言实例--栈一)

各位看官们,大家好,从今天开始,我们讲大型章回体科技小说 :C栗子,也就是C语言实例.闲话休提, 言归正转.让我们一起talk C栗子吧! 看官们,上一回中咱们说的是双向链表的例子,这一回咱们说的例子是:栈. 什么是栈?我们听过龙门客栈,你这个是哪家客栈?我还没有说,台下已经有客官在问了.看官们,栈是 类似我们在前面几回中说过的链表,它也是用来存放数据的一种抽象的数据结构.因为比较抽象,咱们还 是举个现实生活中的例子来说明吧. 我们出去旅游时通常会拿一个行李箱存放自己的物品,比如衣服,鞋子电脑,

一起talk C栗子吧(第六回:C语言实例--生成随机数)

各位看官们,大家好,从今天开始,我们讲大型章回体科技小说 :C栗子,也就是C语言实例.闲话休提, 言归正转.让我们一起talk C栗子吧! 看官们,上一回中咱们说的是数组巧妙赋值的例子,这一回咱们说的例子是:生成随机数. 看官们学过C语言的话,还记得如何生成随机数吧.忘记了?那么我们一起说说.使用rand()函数可以生 成随机数,不过,它生成的随机数是一种伪随机数.因为重复执行程序的话,得到的随机数是一样.生成 随机数的函数是通过一个固定的数值来计算随机数的,我们可以通过srand()函数来指定

一起talk C栗子吧(第十二回:C语言实例--单链表一)

各位看官们,大家好,从今天开始,我们讲大型章回体科技小说 :C栗子,也就是C语言实例.闲话休提, 言归正转.让我们一起talk C栗子吧! 看官们,上一回中咱们没有说具体的例子,而且是说了例子中的文件组织结构.这一回咱们继续说C例子, 说的例子是链表,更准确的说法叫作单链表.咱们不但要说C例子,而且会在例子中使用上一回中说过的 文件组织结构,就当作是举例说明文件组织结构的使用方法. 有点一石二鸟的感觉,哈哈. 链表定义 看官们,所谓的链表其实就是一组元素通过一定的方式链接在一起.比如我们坐的火车