当前位置: 首页 > news >正文

冒泡排序 试做版 2025/10/29 21:13

include <stdio.h>

int main()
{
int n,i,k,p;
while(scanf("%d",&n)==1) //读入数组个数n
{
int arr[n]; //创建数组 该数组刚好能容纳n组数据
for(i=0;i<n;i++) //从数组0开始 数组0 数组1 数组2 数组3...... 依次存入相对应的数据
{
scanf(" %d",&arr[i]); //存入
}
/*到了此处 所有前期准备业已完成
接下来该处理冒泡排序了 */

                        /*下为第二次循环 该循环的用意在于确认比较数据的轮数 9个数排序,这里就会比较8轮 这样这9个数字就能按照从小到大的顺序进行排列了(别问我为什么9个数只需要比较八轮)             *//*为什么比较要用“轮”而不是“次”? 因为每个数字在排序时需要与后面所有的数字进行比较大小                              */for(k=0;k<n-1;k++){for(i=0;i<n-1-k;i++)  //外层循环控制比较轮数,内层循环负责每轮的具体比较和交换{if(arr[i]>arr[i+1])//比较前后两个数字的大小 我觉得这个你自己应该能看懂{p=arr[i];arr[i]=arr[i+1];arr[i+1]=p;     //p 即temp : 调换arr[j]和arr[j+1]所需的中间变量}}}for(i=0;i<n;i++){printf("%d   ",arr[i]);}
}
return 0;

}

/*常见问题如下

Q:为什么排序后数字的个数变少了?

A:你在给数组存数字的时候没有在%d前面加空格 导致数字没装进去

Q:该代码有4个for循环 第一个和第四个我能理解 为什么中间两个长得那么像? 它俩有啥区别?

A:外层循环控制比较轮数,内层循环负责每轮的具体比较和交换 慢慢理解 多想

Q:为什么要反复使用变量名 我看不懂

A:... 我太懒了

Q:学冒泡排序有什么好处?

A:最直接的好处是你能用冒泡排序解决问题了(此为废话) 其次你学会这个后可以快速理解"遍历求最大值" 与该内容相关的习题:https://www.dotcpp.com/oj/problem2797.html

如有其他疑惑请加微信:a13089584266

http://www.jsqmd.com/news/26036/

相关文章:

  • CSP 45^2复赛游记
  • 工厂用什么考勤系统好?2025最新8款推荐
  • 深度技术解析低功耗蓝牙厂商nordic的nRF Connect SDK裸机选项方案
  • 20232317 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • 用 Gemini + VS Code 打造属于你的 AI 编程神器(完胜 Cursor!)
  • 《程序员修炼之道:从小工到专家》观后感第三篇
  • profile 与 profile.d 在 Linux 发行版本中的作用 - ENGINEER
  • 思维day1
  • 内存本地修改
  • Nordic NRF54第四代蓝牙产品最优赋能---三星SmartThings Find设备追踪服务
  • 求 max(区间不同数的个数-区间mex)
  • 《程序员修炼之道:从小工到专家》前五分之三观后感
  • C语言typedef用法
  • 美客多接口协议学习
  • Python 模块sys详解
  • 2025-10-29 早报新闻
  • 请问
  • 2024 暑期模拟赛 #5
  • Nordic无线开发---nRF Connect SDK 3.0更新版的安装入门介绍
  • 关于 google 登陆的一些奇妙技巧
  • 移位寄存器 蓝色 与 粉红色 有什么区别
  • 第9天(中等题 滑动窗口)
  • Palantir Ontology 技术深度解析:化繁为简,连接数据与决策的数字孪生
  • CF1196F K-th Path
  • 转换FastText训练数据格式到Parquet(Polars,KIMI)
  • PlantAssistant-VUE属性数据
  • 由 Mybatis 源码畅谈软件设计(四):动态 SQL 执行流程
  • 10.29(续)
  • DicomObjects .NET 8.48.231.0 - 实践
  • 2025.10.29__jyu每日一题题解