一道java笔试题

输入一串用空格隔开的数字串,对于数字串的奇数位按升序排序,偶数位按降序排序.

示例输入:

4 6 2 3 6 7 8 1

处理过程:

奇数位:4 2 6 8 升序排序结果: 2 4 6 8

偶数位:6 3 7 1 降序排序结果: 7 6 3 1

结果输出:2 7 4 6 6 3 8 1

 
demo:
import java.util.*;

public class Main {
public static void main(String args[]) {
Scanner scan = new Scanner(System.in);
String inStr = scan.nextLine();
scan.close();
String[] strs = inStr.split(" ");
int N = strs.length;
int[] inNums = new int[N];
for (int i = 0; i < N; i++) {
inNums[i] = Integer.parseInt(strs[i]);
// System.out.println(strs[i]);
}

int tmp = 0;
//奇数位升序
for (int i = 0; i < N - 1; i = i + 2) {
for (int j = i; j < N - 1; j = j + 2) {
if (inNums[i] > inNums[j]) {
tmp = inNums[i];
inNums[i] = inNums[j];
inNums[j] = tmp;
}
}
}
//偶数位降序
for (int i = 1; i < N - 1; i = i + 2) {
for (int j = i; j < N - 1; j = j + 2) {
if (inNums[i] < inNums[j]) {
tmp = inNums[i];
inNums[i] = inNums[j];
inNums[j] = tmp;
}
}
}


for (int i = 0; i < N; i++) {
System.out.print(inNums[i]);
System.out.print(" ");
}

}

}

转载于:https://www.cnblogs.com/youse/p/5686631.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值