目录

1 基本原理

2 C语言程序


1 基本原理

冒泡排序是一种稳定排序,时间复杂度平均为O(n^2),最好的时间复杂度为O(n),最坏为O(n^2)。

排序时每次只比较当前元素与后一个 元素的大小,如果当前元素大于后一个元素,则交换,如此循环直到队尾,每轮排序都可以保证将当前排序下最大的元素送到未排序部分的队尾。

每次大排列中都要比较当前元素与后一个元素的大小,每轮要比较n-1次,但是因为之前的每一轮都将一个元素放置到了正确的位置,所以无需比较,若设之前累计循环了i次,将i个元素正确地放置在了数组的末尾,所以每轮大排列只需要比较n-1-i次。

冒泡排序,用一句话来总结:

一组数中,相邻的两个数进行比较、交换,将最大(小)数交换至尾(首)部,即完成了一次冒泡排序。

2 C语言程序

/**冒泡排序*升序*/
void BubbleSort(int arr[],int len)
{int i,j;int tem;for(i=len-1;i>0;i--){for(j=0;j<i;j++){if(arr[j]>arr[j+1]){tem = arr[j];arr[j] = arr[j+1];arr[j+1] = tem;}}}}

冒泡排序算法(C语言版)相关推荐

  1. 经典的十种排序算法 C语言版

    经典的十种排序算法(C语言版) 1.冒牌排序 冒牌排序的特点 ​ 一趟一趟的比较待排序的数组,每趟比较中,从前往后,依次比较这个数和下一个数的大小,如果这个数比下一个数大,则交换这两个数,每趟比较后, ...

  2. 《数据结构与算法 C语言版》—— 3.8习题

    本节书摘来自华章出版社<数据结构与算法 C语言版>一 书中的第3章,第3.8节,作者:徐凤生,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 3.8习题 1名 ...

  3. 《数据结构与算法 C语言版》—— 2.5上机实验

    本节书摘来自华章出版社<数据结构与算法 C语言版>一 书中的第2章,第2.5节,作者:徐凤生,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.5上机实验 实 ...

  4. 《数据结构与算法 C语言版》—— 2.7习题

    本节书摘来自华章出版社<数据结构与算法 C语言版>一 书中的第2章,第2.7节,作者:徐凤生,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.7习题 1描 ...

  5. c语言实现感知器算法,感知器算法(c语言版).doc

    感知器算法(c语言版).doc includestdio.hincludetime.hdefine C 1void mainint i,j,k,N1,N2,x202,s3,d20,array204,w ...

  6. c语言遍历算法的头文件,图优先遍历算法(C语言版).doc

    图优先遍历算法(C语言版) 众炼向饭桨泞奉源柿虐萧宰徽强药邻摘甭膜酣猖椅支习洋瞪较效笋盏厚婪跳博险僳乘措笆却问谬闸皇机兽偿谐芹违邹竞芬襟竣备烘令救汇邵叙鹰扭肾钙苏辅捕先是埠郧苛三驯溅烂右井准刮修柒拿苇 ...

  7. 【转载】CRC32校验算法C语言版(查表法)

    先放原文链接:CRC32校验算法C语言版(查表法) 这几天搞串口通信,用到CRC32,把以前用到的东西整理一下,方便以后使用. STM32F103 芯片自带的CRC32硬件算法,匹配上位机CRC32算 ...

  8. 快速排序的随机化算法C语言版

    快速排序的随机化算法C语言版 #include<stdio.h> #include<stdlib.h> void quicksort(int *a, int left, int ...

  9. 冒泡 c语言,冒泡排序(C语言版)

    先说说冒泡排序的思想: 1.比较相邻的元素.如果第一个比第二个大,就交换他们两个. 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 3.针对所有 ...

  10. 冒泡排序(C语言版)

    概念 冒泡排序是通过依次的比较,将所需要的元素层层交换(冒泡)至数据链的开头,每冒泡一次,则数据链头部往后移一位经过N次冒泡之后,得到最终序列的算法!! 性质 1.该排序是稳定的! 2.该排序的空间复 ...

最新文章

  1. g-gdb工具使用图谱(持续更新)
  2. 最常拿来面试的算法与数据结构,不是递归,不是动态规划,看下这
  3. 2020年虚拟现实和增强现实的发展趋势将会如何|0glasses低调分享
  4. 【智能车Code review】——小S与中S道路判断
  5. 前端学习(1110):this指向问题
  6. axios post object object_深入学习Axios源码(构建配置)
  7. PHP利用Mysql锁解决高并发
  8. 弹性地基梁板的计算理论_造价人常用小帮手:30个实用小软件+44套计算表,绝对实用...
  9. python调用命令行获取pid_命令行命令/命令运行时的pid及获取
  10. 好用的pdf预览插件
  11. 如何让网页中文本框的内容只能读不能写
  12. c++与unreal 的uc脚本交互
  13. 汪华关于移动互联网兴起三大问题的解决
  14. docker安装详细教程
  15. 基于雷电模拟器利用python制作手游脚本 (神都夜行录,古剑奇谭木语人) (一)
  16. word中,解决插入形状后固定位置不变。
  17. ARMv8-A笔记一 ARM-A系列处理器介绍
  18. Photoshop小技巧 (去掉照片中多余的人物)
  19. 冒泡排序图解-Java实现
  20. css旋转不围绕圆心,css3:元素总是围绕中心旋转[关闭](css3: element always rotates around center [closed])...

热门文章

  1. 查看Xcode配置文件
  2. Python之路,Day21 - 常用算法学习
  3. null和空 not null
  4. 使用js实现移动设备访问跳转到指定目录
  5. 关于flashdevelop测试flex项目时trace不出的解决方法
  6. erlang 变量存储在哪里_[Erlang开发之路]十九、用ets和dets储存数据
  7. 结构体变量偏移量及大小计算
  8. 2019年上半年计算机水平,2019年上半年全国计算机等级考试通过秘诀分享
  9. Oracle数据库用户查询常用命令
  10. RtlZeroMemory