【济南校区】JavaEE基础阶段必会案例NO.28-逆序对
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
//键盘录入整数
Scanner sc = new Scanner(System.in);
System.out.println("请输入数组中元素个数:");
int n = sc.nextInt();
//判断n在2 到100000之间
while(true){
if(n<2 || n>100000){
System.out.println("对不起请重新输入n个数(2-100000)");
n = sc.nextInt();
}else{
break;
}
}
//创建相应长度的数组:
int[] arr = new int[n];
//接收元素,放入数组
for (int i = 0; i < arr.length; i++) {
System.out.println("请输入第"+(i+1)+"个元素:");
int num = sc.nextInt();
//判断元素的大小符合要求,然后存入数组
if(num>Math.pow(10, 9)){
i--;
System.out.println("数字太大了!");
continue;
}
arr = num;
}
//遍历数组找出符合要求的逆序对总数
int count = 0;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length; j++) {
if(i<j && arr>arr[j]){
System.out.println("逆序对:"+arr+" "+arr[j]);
count++;
}
}
}
System.out.println("共有"+count+"对");
}
}
Yin灬Yan 发表于 2018-3-3 20:38
我来占层楼啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |