一:冒泡算法是怎么样去对一堆无序数字进行排序的?

1.首先我先说明一下冒泡排序的特点:冒泡排序特点就是每一趟排序把最大的数字找出来并且同时放在最后。这样通过有限次的排序后,有限-无序-序列的数字就会被排序成有序序列。

2.那么冒泡算法是如何对数字进行排序的呢?

概念:以第一个数字为首,与后面第二个数字进行比较,如果第一个数字比第二个数字大,那么就把第一个数字与第二个数字的位置进行交换,否则该数字位置不变。然后第二个数字又与第三个数字进行比较,如果第二个数字大于第三个数字的话,则第二个数字与第三个数字进行位置交换......一直重复这样的操作,那么一趟排序下来就可以找出该序列的最大值了。(注意:每一趟排序的时候,之前所有排序出来的最大值不再参与本次排序)

下面是对:1 23 4 98 70 10 9 这一无序数字序列进行第一趟排序

①:1比23小,不调换位置。此时序列为:1 23 4 98 70 10 9

②:23比4大,调换位置。此时序列为:1 4 23 98 70 10 9(23与4调换了位置)

③:23比98小,不调换位置。此时序列为:1 4 23 98 70 10 9

④:98比70大,调换位置。此时序列为:1 4 23 70 98 10 9(98与70调换了位置)

⑤:98比10大,调换位置。此时序列为:1 4 23 70 10 98 9(98与10调换了位置)

⑥:98比9大,调换位置。此时序列为:1 4 23 70 10 9 98(98与9调换了位置)

需要注意的是,当进行第二趟排序的时候,是不需要与98这个数字比较的。因为第一趟排序可以把无序序列中的最大数字排在后面,而第二趟就是把第二大的数字放在后面,第三趟排序就是把第三大的数字放在后面.......

如果觉得难以理解的朋友可以在草稿纸上画两个杯子,一号杯子装着所有的无序数字,二号杯子则为空。把每一趟排序出来的数字有序地放在二号杯子里面,然后对一号杯子重新排序。你会发现当你第二次对一号杯子进行排序的时候,所找出来的那个最大数字其实就是原来一号杯子所有数字的第二大数字。而第三次对一号杯子排序则找出来的是原有序列的第三大的数字。

二:代码实现如下:

运行结果如下:

C语言———冒泡算法相关推荐

  1. 冒泡已知4个数c语言,C语言-《一维数和冒泡算法》.ppt

    C语言-<一维数和冒泡算法> 一维数组和冒泡算法 本次课程内容 课程目标: 了解数组的概念 掌握一维数组的定义,初始化和取用 掌握排序算法:"冒泡排序"(难点) * 要 ...

  2. oracle 冒泡,详解易语言的冒泡算法

    我们做一些游戏脚本软件时候,经常要用到这个算法,比如求解离自己身边最近的怪物优先攻击,就要用到这个算法,冒泡算法可以快速的把一组数据按照从大到小,或者从小到大的顺序进行快速排序. 冒泡算法的核心就是, ...

  3. C语言:使用冒泡算法将数组中的数据从大到小进行排序

    /*使用冒泡算法将数组中的数据从大到小进行排序*/ #include<stdio.h> #define N 5 int main() {int a[N];int i,j,t;printf( ...

  4. python语言实现冒泡算法(附代码)

    冒泡算法的基本原理就是让大的数冒泡冒到列表的最后,最大的排在最后一位,第二大的排到最后第二位,以此类推,直到整个列表遍历完整.具体的代码如下所示: num_list = [5,8,3,7,2,1,0, ...

  5. c语言:利用冒泡算法对10个数字进行从小到大的排序

    利用冒泡算法对10个数字进行从小到大的排序 #include <stdio.h> int main() {int a[10];int i,j,t;printf("请输入10个数字 ...

  6. c语言常用算法分析 微盘,C语言常用算法归纳.pdf

    C 语言常用算法归纳 应当掌握的一般算法 一.基本算法: 交换.累加.累乘 二.非数值计算常用经典算法: 穷举.排序(冒泡,选择).查找(顺序即线性) 三.数值计算常用经典算法: 级数计算(直接.简接 ...

  7. c语言二级常考算法大全,二级C语言 常用算法.doc

    二级C语言 常用算法 C语言常用算法 一.计数.求和.求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值.终值或结束条件,更要注意用来表示计数.和.阶乘的变量的初值. 例:用随机 ...

  8. c语言 算术平均滤波法_基本C语言滤波算法

    11种软件滤波方法的示例程序 假定从8位AD中读取数据(如果是更高位的AD可定义数据类型为int),子程序为get_ad(); 1.限副滤波 /*  A值可根据实际情况调整 value为有效值,new ...

  9. 对于c语言排序方法的论文,c语言排序算法论文.doc

    c语言排序算法论文 算法论文 题目名称:<c语言常用排序算法分析> 系部名称:计算机科学与工程 班 级: 学 号: 学生姓名: 指导教师: 2014年4月 c语言常用排序算法分析 摘 要 ...

最新文章

  1. 单相桥式相控整流电路multisim仿真_单相半波整流 全波整流 桥式整流
  2. ASP.NET MVC中在Action获取提交的表单数据方法总结
  3. Server Tomcat v8.0 Server at localhost was unable to start within 45 seconds. 报错详细
  4. 天不知道地知道你不知道我知道谜底_温州这里有个7000平方米的“寻宝”地,你不知道就亏大了!...
  5. 斐波那契数的皮萨诺周期
  6. linux 使cpu使用率升高_[Linux小技巧] 一行命令让CPU占用率达到100%
  7. 数维杯国际大学生数学建模挑战赛
  8. 我要写整个中文互联网界最牛逼的JVM系列教程 | 「JVM与Java体系架构」章节:虚拟机与Java虚拟机介绍
  9. 计算机网络 之 局域网
  10. 计算机usb接口标志什么意思,笔记本上USB接口的标识
  11. linux使用光盘镜像(ISO)作为软件源安装软件
  12. 社区版pycharm的django创建app失败问题解决
  13. 存储服务器在监控中的作用,监控项目中存储服务器IPSAN云存储方案的优劣势对比...
  14. 嵌入式Linux设备驱动程序开发指南17(IIO子系统一)——读书笔记
  15. 2021-09-08 网安实验-编码解码-九宫格键盘编码
  16. html左侧菜单展开与收起,CSS3 实现侧边栏展开收起动画
  17. 音频/面板资源管理器_AudioPanelManager
  18. 依赖注入和反转控制的区别
  19. 转载:提高脑力70法
  20. python爬取游戏数据,Python 爬虫之好游快爆游戏排行信息爬取

热门文章

  1. 面向对象编程题——人开枪射击子弹
  2. python中生日悖论分析_python实现生日悖论分析
  3. 印象大使_成为团结学生大使
  4. 有限内存BFGS求解泊松方程
  5. [Egret] 对对碰H5小游戏
  6. Linux音频驱动之一:音频驱动注册流程
  7. linux之initrd简介
  8. 用html编写一个无序列表,输出HTML无序列表python
  9. 关于for循环数据溢出问题
  10. Ubuntu软件更新更换源