排序算法《一》冒泡排序
学了这么久的C语言发现C语言的算法非常的多,特别是排序算法,在编程中的应用非常广泛,如:冒泡排序、选择排序、希尔排序 等等,
今天向大家介绍排序中的一种最基本的排序,“冒泡排序”
冒泡排序是排序中非常基本的排序,也是非常重要的排序
因为排序时像水泡一样一个一个向上冒故此得名
基本思想:
将下面的数据按照从小到大的顺序排列
27 36 32 18 5
排序前:
27 | 36 | 32 | 18 | 5 |
第一趟:
第1次:27<36不变
27 | 36 | 32 | 18 | 5 |
第2次:36>32交换
27 | 32 | 36 | 18 | 5 |
第3次:36>18交换
27 | 32 | 18 | 36 | 5 |
第4次:36>5交换
27 | 32 | 18 | 5 | 36 |
第二趟:
第1次:27<32不变
27 | 32 | 18 | 5 | 36 |
第2次:32>18交换
27 | 18 | 32 | 5 | 36 |
第3次:32>5交换
27 | 18 | 5 | 32 | 36 |
第三趟:
第1次:27>18交换
18 | 27 | 5 | 32 | 36 |
第2次:27>5交换
18 | 5 | 27 | 32 | 36 |
第四趟:
第1次:18>5交换
5 | 18 | 27 | 32 | 36 |
排序后的结果:
5 18 27 32 36
算法代码:
#include <stdio.h>
#include <stdlib.h>int main()
{int a[] = { 27, 36, 32, 18, 5};int temp;//中间变量int i, j;//用于for循环printf("排序前的数据:");for (i = 0; i < sizeof(a) / sizeof(int); i++)//打印排序前的数据{printf("%d ", a[i]);}printf("\n");//换行for (i = 0; i< sizeof(a) / sizeof(int) - 1; i++)//排序的趟数{for (j = 0; j < sizeof(a) / sizeof(int) - i - 1; j++)//每趟的次数{if (a[j]>a[j + 1])//当后一个数小于前一个数时{temp = a[j];//交换两个数a[j] = a[j + 1];a[j + 1] = temp;}}}printf("\n排序后的数据:");for (i = 0; i < sizeof(a) / sizeof(int); i++)//打印排序后的数据{printf("%d ", a[i]);}printf("\n\n");//换行system("pause");
}
执行结果:
排序算法《一》冒泡排序相关推荐
- Java排序算法:冒泡排序
Java排序算法:冒泡排序 //创建数组并赋值int[] data = new int[] {11,10,55,78,100,111,45,56,79,90,345,1000};for(int i=0 ...
- 排序算法:冒泡排序、插入排序、选择排序、希尔排序
相关博客: 排序算法:冒泡排序.插入排序.选择排序.希尔排序 排序算法:归并排序.快速排序 排序算法:桶排序.计数排序.基数排序 排序算法:堆排序 十大排序算法小结 一.冒泡排序: 1.算法原理: 冒 ...
- golang 排序_常用排序算法之冒泡排序
周末无事,带娃之余看到娃娃在算数,想到了排序-尝试着把几种常用的排序算法跟大家聊一聊,在分析的后面我会用GoLang.PHP和JS三种语言来实现下. 常见的基于选择的排序算法有冒泡排序.插入排序.选择 ...
- 十大排序算法:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序
冒泡排序.选择排序.插入排序.希尔排序.归并排序.快速排序.堆排序.计数排序.桶排序.基数排序的动图与源代码. 目录 关于时间复杂度 冒泡排序 选择排序 插入排序 希尔排序 归并排序 快速排序 堆排序 ...
- 数据结构与算法:十大排序算法之冒泡排序
数据结构与算法:十大排序算法之冒泡排序 package array;import java.util.Arrays;//冒泡排序 //1.比较数组中两个相邻的元素,如果第一个数比第二个数大,我们就交换 ...
- 【排序算法】冒泡排序、简单选择排序、直接插入排序比较和分析
[排序算法]冒泡排序.简单选择排序.直接插入排序比较和分析 写在前面: 本文简单介绍了冒泡排序.简单选择排序.直接插入排序,并对这三种排序进行比较,入参都是80000个随机数,比较算法耗时.进一步,我 ...
- 排序算法(1)冒泡排序
排序算法(1)冒泡排序 原理: 1.比较相邻的元素.如果第一个比第二个大,就交换他们两个. 2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 3. ...
- php编写冒泡排序算法_PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
本文实例讲述了PHP排序算法之冒泡排序(Bubble Sort)实现方法.分享给大家供大家参考,具体如下: 基本思想: 冒泡排序是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换 ...
- 冒泡和快速排序的时间复杂度_常用排序算法之冒泡排序
周末无事,带娃之余看到娃娃在算数,想到了排序-尝试着把几种常用的排序算法跟大家聊一聊,在分析的后面我会用GoLang.PHP和JS三种语言来实现下. 常见的基于选择的排序算法有冒泡排序.插入排序.选择 ...
- 排序算法之冒泡排序(Java版)
排序:即使集合或数组中的元素有序化 本篇介绍最简单.最易掌握的冒泡排序 冒泡排序: 是一种简单的排序算法, 冒泡排序就像学生站队一样,要在老师的引导下,以某位同学位基准,其他学生按身高 ...
最新文章
- 学术前沿 | 基于深度学习的视觉三维重建研究总结
- 微生物绝对定量or相对定量,你选对了吗
- android通过php判断用户是否注册,android - 判断Token是否有效
- 利用解构赋值获取后端特定字段数据
- 购物网站注册页面html,电商购物网站 - 实现注册
- P1330 阳光封锁大学
- Mapreduce执行过程分析(基于Hadoop2.4)——(三)
- 微信服务号认证收费 :一场激进的自卫战
- win10系统IIS服务器配置详细教程,win10系统配置iis的操作方法
- php电子病历毕业设计,基于区块链的电子病历系统设计与实现(自制毕设)
- 古风一棵桃花树简笔画_唯美意境桃花古风句子
- Android 三大图片缓存原理、特性对比
- 关于c++中的一个母牛生小牛的问题详细解答与体会
- 鸿蒙之志蝼蚁岂知,争气励志语:生如蝼蚁,当有鸿鹄之志,命如纸薄,应有不屈之心...
- linux车牌识别,基于嵌入式Linux的电子车牌识别系统设计与实现
- 嘿,这里有你想要的Javascript本源
- 有计算机考试励志的文案,抖音冲刺高考励志文案
- 关于眼镜保护的几点做法
- 读懂select函数
- 剑指Offer——顺时针遍历矩阵
热门文章
- 猝灭剂BHQ-1 amine/1308657-79-5/BHQ-2 氨基/1241962-11-7者相关的物理性质还是有一定的区别,整理以下相关的数据进行对比。
- 舒舍分析现在的北京租房市场
- 网间进程的标识和端口分配机制
- oracle注册表重建,一次Windows 注册表中注册表项目丢失导致的Oracle 数据库启动问题。...
- 小米5怎么安android,小米5怎么插卡 小米5手机安装sim卡图文教程
- getsockopt和setsockopt
- 论文必备-五大学术文献资料推荐网站+免费下载知网、万方的论文资料
- 基于asp.net的网上选课系统的设计与实现
- 使用UltraISO制作Ubuntu16.04 U盘启动盘
- 专有钉钉下载(windows、IOS、Android)地址