冒泡排序(Bubble Sort):是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。(维基百科)

冒泡排序算法的运作如下:

  • 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  • 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
  • 针对所有的元素重复以上的步骤,除了最后一个。
  • 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
#include<stdio.h>
void swap(int * a, int * b)
{int temp;temp = *a;*a = *b;*b = temp;
}void bubble_sort(int arr[],int len)
{int i,j,temp;for(i=0;i<len-1;i++){for(j=0;j<len-1-i;j++){if(arr[j]>arr[j+1]){swap(&arr[j],&arr[j+1]);}}}
}int main()
{int arr[]={3,4,2,1};int len,i;len = sizeof(arr) / sizeof(*arr);bubble_sort(arr, len);for(i=0;i<len;i++){printf("%d ",arr[i]);}
}

【C语言】排序算法之冒泡排序相关推荐

  1. C语言实例——四种排序算法(冒泡排序、选择排序、插入排序、快速排序)

    C 语言排序算法 BB Time 一.冒泡排序 1.原理 2.代码 二.选择排序 1.原理 2.代码 三.插入排序 1.原理 2.代码 四.快速排序 1.原理 2.代码 3.操作过程 BB Again ...

  2. C语言排序算法之简单交换法排序,直接选择排序,冒泡排序

    C语言排序算法之简单交换法排序,直接选择排序,冒泡排序,最近考试要用到,网上也有很多例子,我觉得还是自己写的看得懂一些. 简单交换法排序 1 /*简单交换法排序 2 根据序列中两个记录键值的比较结果来 ...

  3. golang 排序_常用排序算法之冒泡排序

    周末无事,带娃之余看到娃娃在算数,想到了排序-尝试着把几种常用的排序算法跟大家聊一聊,在分析的后面我会用GoLang.PHP和JS三种语言来实现下. 常见的基于选择的排序算法有冒泡排序.插入排序.选择 ...

  4. 十大排序算法:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序

    冒泡排序.选择排序.插入排序.希尔排序.归并排序.快速排序.堆排序.计数排序.桶排序.基数排序的动图与源代码. 目录 关于时间复杂度 冒泡排序 选择排序 插入排序 希尔排序 归并排序 快速排序 堆排序 ...

  5. C语言排序算法(十种排序代码可跑

    C语言排序算法(十种排序代码可跑) 冒泡排序: 选择排序: 插入排序: 归并排序: 快速排序: 希尔排序: 堆排序: 计数排序: 桶排序: 基数排序: 以上就是所有代码,希望同学们好好学习!!! 冒泡 ...

  6. 冒泡和快速排序的时间复杂度_常用排序算法之冒泡排序

    周末无事,带娃之余看到娃娃在算数,想到了排序-尝试着把几种常用的排序算法跟大家聊一聊,在分析的后面我会用GoLang.PHP和JS三种语言来实现下. 常见的基于选择的排序算法有冒泡排序.插入排序.选择 ...

  7. Java排序算法:冒泡排序

    Java排序算法:冒泡排序 //创建数组并赋值int[] data = new int[] {11,10,55,78,100,111,45,56,79,90,345,1000};for(int i=0 ...

  8. 排序算法:冒泡排序、插入排序、选择排序、希尔排序

    相关博客: 排序算法:冒泡排序.插入排序.选择排序.希尔排序 排序算法:归并排序.快速排序 排序算法:桶排序.计数排序.基数排序 排序算法:堆排序 十大排序算法小结 一.冒泡排序: 1.算法原理: 冒 ...

  9. c语言排序算法 应用与实现,基于C语言排序算法改进与应用.doc

    基于C语言排序算法改进与应用 基于C语言排序算法改进与应用 摘 要:介绍了程序语言中排序的原理及应用,阐述了基于C语言的三种主要排序方法,提出了每种排序方法的改进,计算出改进后算法的时间复杂度,编写了 ...

  10. 数据结构与算法:十大排序算法之冒泡排序

    数据结构与算法:十大排序算法之冒泡排序 package array;import java.util.Arrays;//冒泡排序 //1.比较数组中两个相邻的元素,如果第一个数比第二个数大,我们就交换 ...

最新文章

  1. PHP学习笔记-PHP与Web页面的交互2
  2. 遇到的问题锦集及解决方案
  3. 洛谷 - P4001 [ICPC-Beijing 2006]狼抓兔子(网格图最大流转换为对偶图最短路)
  4. 经验:Windows To Go准备工作
  5. 程序员面试金典 - 面试题 10.10. 数字流的秩(map/树状数组)
  6. 动态规划--Leetcode62--不同路径
  7. 软件开发质量的双保险 — 3.应用设计验证与应用用例
  8. 调用图片文件夹中的任意图片随机显示_【分享】文字、表格、公式图片识别神器V0.8...
  9. C++ STL容器之string--常用接口
  10. FZEasyFile的使用
  11. 74HC/LS/HCT/F系列芯片的区别
  12. sublime 配置快捷键
  13. (原創) 如何使用ThinkPad的TrackPoint(小紅點)? (NB) (ThinkPad)
  14. DNS分类与区别-权威DNS、递归DNS、转发DNS
  15. 关于ttime的序列化存储及读取的方法
  16. Python爬虫之爬取网站图片
  17. stm32f103——基本定时器与定时器中断
  18. 航班查询接口调用介绍
  19. 用友U9 UAP平台解析
  20. 【安路FPGA】FPGA开发日记(一)

热门文章

  1. 华为桌面云使user用户具有管理权限的模板封装(链接克隆)
  2. 腾讯位置 - 地址解析(结尾附视频)
  3. Godsend(博弈)
  4. 2022-2028全球汽车紧急呼叫(eCall)备用电池行业调研及趋势分析报告
  5. PMP学习笔记(1)工作分解结构-资源分解结构-职责分配矩阵-资源日历
  6. cer pem 证书转换_证书cer格式转为pem格式
  7. 2315 Time(哈尔滨理工大学)
  8. MATLAB如何在原图插入一个局部放大图
  9. 2.7关系运算与逻辑运算
  10. python后端还是数据分析好_数据分析和web后端选哪个 知乎