1 条题解
-
0
思路分析
1. 任务拆解:
- 读取车厢数量n
- 读取初始车厢顺序
- 使用冒泡排序进行升序排列
- 统计交换车厢的次数
- 输出最少交换次数
2. 关键点分析:
- 每次只能交换相邻两节车厢,对应冒泡排序的交换操作
- 冒泡排序的交换次数就是最少需要的步数
- 使用ans变量累计每次交换操作
- 题目本质是计算冒泡排序的交换次数
3. 步骤规划: 第一步:读取车厢数量n 第二步:循环读取初始车厢顺序 第三步:进行冒泡排序 第四步:每次交换相邻车厢时计数器加1 第五步:输出总交换次数
4. 代码对应:
cin>>n:读取车厢数量- 第一个
for循环:输入初始车厢顺序 - 外层
for循环:控制排序趟数 - 内层
for循环:进行相邻比较和交换 if(a[j]>a[j+1]):如果顺序不对就交换swap(a[j],a[j+1]):交换相邻车厢ans++:交换次数计数器加1cout<<ans:输出最少交换次数
- 1
信息
- ID
- 1641
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 3
- 标签
- (无)
- 递交数
- 245
- 已通过
- 139
- 上传者