冒泡排序 C语言(从大到小排序)
1 一维数组
2 冒泡的概念
3 代码实现
1一维数组
一维数组 :存放字符型数据的数组
一维数组的定义
首先 定义int arr[5](int类型的一维数组 ), 5 是数组的长度 也就是大小 但是我们 在访问数组元素的地址 时候, 不存在 有 arr[5]
也就是说 定义arr[5]只是 为了 让你知道这个数组大小是 5 而已 我们在访问 数组的元素地址时候 是用下标来访问的 (从0开始 ) 上述的两种定义的方法 都可以适用 在我们的元素长度和数组大小对不上时 他们自动补充 元素 我们有个这些概念之后 后面讲到的理解起来 都不会很吃力
2 冒泡 的概念
拿图中的五个数相比较 只要满足 前<后 我们就可以进行 交换 也就是 用下标法来比较
我们可以得出 我们拿五个数比较 第一轮 比较四次 得出 最大值 除去最大值 就是第二轮要比较的数 第二轮就是要比较 (比较的数量-1)就可以得本轮的最大值 其实第五轮 是没有比较的 因为只有一个数 (只是为了更直观 看到 全部 )
3 代码实现
计算 数组大小的 关键字 sizeof
计算公式
int len=sizeof(arr)/sizeof(arr[0]);
函数声明
void scan(int arr[],int len);void MaoPao(int arr[],int len);void print(int arr[],int len);
函数声明 只是为了 养成 良好的 编程习惯
输入函数
//输入函数void scan(int arr[],int len){for(int i=0;i<len;i++){scanf("%d",arr+i);//输入五位数}
因为 数组名就是 入口 地址 所以 我不用常规的方式 来写 输入函数 其实都一样的
冒泡排序
//冒泡 排序 函数void MaoPao(int arr[],int len){int temp;for(int i=0;i<len-1;i++){for(int j=0;j<len-i-1;j++){if(arr[j]<arr[j+1])//满足条件 交换 到了下一次 并且 相应改变 位置{temp=arr[j]; //开始交换 arr[j]=arr[j+1];arr[j+1]=temp;}}}}
i 是轮次 我拿了 五个 数 可以发现 我只用了 四轮 就完成了 大小排序
j是 比较的次数 第一轮 用了 四次 (最开始有五个数 )所以 要 长度-1-i
如果 不减i的话 会导致 每一轮的比较次数都是一样的 这个要特别注意
输出 函数
void print(int arr[],int len){printf("大小排序是:\n");for(int i=0;i<len;i++){printf(" %d",*(arr+i));}}
这里再说一次 输入 和输出 能用 arr+i 和 *(arr+i) 写的原因 常规写法 应该分别是 &arr[I] 和 arr[i] 我们这里要知道一个概念 数组名就是数组 的入口地址(首地址)
主函数 的 调用
void main(void)//无参主函数 {int arr[5];int len;len=sizeof(arr)/sizeof(arr[0]);//计算数组大小scan(arr,len);//输入 MaoPao(arr,len);//排序print(arr,len);//输出 }
最后结果
冲冲冲冲冲冲 !!!!!!!!!!!!!!!!!!!!!!!!
最 后 感 谢 大 家 的 阅 读
冒泡排序 C语言(从大到小排序)相关推荐
- c 语言从大到小排序算法,10 大经典排序算法(动图演示+ C 语言代码)
原标题:10 大经典排序算法(动图演示+ C 语言代码) 来源:C语言与CPP编程 以前也零零碎碎发过一些排序算法,但排版都不太好,又重新整理一次,排序算法是数据结构的重要部分,系统地学习很有必要. ...
- c语言五位数大到小排序,刚学c语言,老师让用if编一个五个数字从大到小的排序,有那个大神能帮我,谢谢啦...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #define N 5 int main() { int numbers[N]; int i,j,pre,k; int x = 5; i ...
- 对N个数进行从大到小排序
文章目录 一.代码 二.实现过程 总结 一.代码 import java.util.Arrays;public class Test {public static void main(String[] ...
- C语言冒泡排序(从大到小排序核心代码)
冒泡排序(从大到小排序) 核心代码 for(j=0;j<N-1;j++)for(x=0;x<N-j-1;x++)if(b[x]<b[x+1]){temp=b[x];b[x]=b[x+ ...
- c语言冒泡法对10个整数由大到小排序,用冒泡法对10个整数排序
公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:用冒泡法对10个整数排序.10个整数用scanf函数输入回答:举了例:一个数组:3,2,5,1,4从小到大排序从左侧开始,逐对比较3 ...
- 输入5个学生的名字(英文),使用冒泡排序按从大到小排序。 提示:涉及到字符串数组,一个字符串是一个一维字符数组;一个 字符串数组就是一个二维字符数组。...
输入5个学生的名字(英文),使用冒泡排序按从大到小排序. 提示:涉及到字符串数组,一个字符串是一个一维字符数组:一个 字符串数组就是一个二维字符数组. #include <stdio.h> ...
- c++ sort 从大到小排序_C语言必学的12个排序算法:堆排序(第7篇)
题外话堆排序比之前的简单选择.冒泡算法.快速排序算法复杂一些,因为用到了树形数据结构,但是本文使用了数组实现完全二叉树,因此也比较简单.C语言初学者,可以简单了解其思想,具体的知识掌握可以参照数据结构 ...
- Nwafu-OJ-1411 Problem J C语言实习题二——5.按从大到小排序三个数
问题 J: C语言实习题二--5.按从大到小排序三个数 时间限制: 1 Sec 内存限制: 128 MB 题目描述 从键盘输入三个数,将它们按从大到小进行排序,然后输出. 输入 输入三个数. 输出 ...
- js冒泡排序-(从大到小排序,从小到大排序)
// 冒泡排序法-从大到小排序 let itemSort = [8, 1, 4, 7, 3, 2, 9]; for (let i = 0; i < itemSort.length; i++) { ...
- C语言 九九乘法口诀表 实现从大到小排序
这次用C语言 实现九九乘法口诀表 从大到小排序 个人感觉不完美,望告知 #include <stdio.h>/*实现从大到小*/ int main(void) {int i,j,t;/*定 ...
最新文章
- anaconda切换python版本及对应环境,太方便
- JVM(2)之 JAVA堆
- MNIST数据可视化
- c#调用.exe程序
- Linux线程池的设计
- linux看是不是db2实例用户,切换到实例用户以后不能执行 db2
- CSS3属性box-shadow详解[盒子阴影]
- 跨站请求伪造(CSRF)漏洞简介及靶场演示
- linux初始化驱动程序,linux驱动程序什么时间初始化
- 计算机原理视频罗克露优酷,5IO系统-2中断-罗克露计算机组成原理课件(绝对与网上视频教程同步)...
- 弹出启动windows安全中心服务器,无法启动Windows安全中心服务怎样处理
- app_start(‘com.ss.android.ugc.aweme‘) 打不开app 无反应 Activity not started, unable to resolve Intent {
- 华为服务器安装nas系统,云服务器搭建nas
- 简述RAKsmart香港服务器的的优势
- 《Python基础教程》学习笔记——异常
- jQuery学习基础理论(二)
- 遇到长GC停顿、CPU满载、内存泄露、JVM崩溃等高频问题,看这里!
- 一张显卡卖5-6万?Tesla计算卡你凭什么这么贵!
- python批量放大图片
- python获取股票的市盈率_怎样查找股票的历史市盈率数据?