P1116 车厢重组(Java)

洛谷P116车厢重组,将数据从小到大进行排序,实际上就是排序问题,比如4 3 2 1-->1 2 3 4 需要交换6次即可,用count记录步数,再将步数输出来即可,可以用冒泡排序、插入排序、选择排序、归并排序等等排序算法,考虑到数据量比较小,这里选用冒泡排序,代码如下:

import java.util.*;
public class Main{
	public static void main(String[] args) {
	Scanner cin = new Scanner(System.in);
	int len = cin.nextInt();//第一行输入数组长度
	int a[]=new int[len];
	int temp;
	int count=0;
	for(int i = 0;i<len;i++) {
		a[i]=cin.nextInt();//第二行输入数组元素
	}
	for(int i=0;i<a.length-1;i++) {//比较数组中的前a.length-1个元素 最后一个自动排好
	for(int j =0;j<a.length-1-i; j++) {//进入数组中,进行元素的两两比较
		if(a[j]>a[j+1]) {//这里有个j+1,如果是比较前三个元素,则j<a.length-i-1,传入数组下标0、1即可
			temp = a[j];//临时变量实现元素交换
			a[j] = a[j+1];
			a[j+1] =temp;
			count++;//计步器记录交换的次数
		}
	}
	
	
	}
	System.out.println(count);//输出元素从小到大排序所交换的次数
}
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寸 铁

感谢您的支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值