WUSTOJ 1247: 递增或递减排序(Java)
1247: 递增或递减排序
题目
有n个整数,求它的递增排序序列或递减排序序列。更多内容点击标题。
分析
- 统一升序排序,输出的时候做区分。
- 先区分是升序还是降序,调用库函数。
代码
方法1,将数组升序排序,输出的时候,再看是升序还是降序。用Arrays.sort(int[],int,int)进行升序排序。
/**
* time 814ms
* @author wowpH
* @version A1.0
* @date 2019-05-10 上午10:09:02
* Environment: Windows 10
* IDE Version: Eclipse 2019-3
* JDK Version: JDK1.8.0_112
*/
import java.io.BufferedInputStream;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(new BufferedInputStream(System.in));
int n, k, i;
int[] a = new int[100];
while (sc.hasNext()) {
n = sc.nextInt();
k = sc.nextInt();
for (i = 0; i < n; i++) {
a[i] = sc.nextInt();
}
Arrays.sort(a, 0, n); // 注意后面两个参数
if (1 == k) { // 升序
for (i = 0; i < n - 1; i++) {
System.out.print(a[i] + " ");
}
System.out.println(a[n - 1]);
} else { // 降序
for (i = n - 1; i > 0; i--) {
System.out.print(a[i] + " ");
}
System.out.println(a[0]);
}
}
sc.close();
}
}
方法2,用Collections.reverseOrder()进行降序排序。
/**
* time 979ms
* @author wowpH
* @version A2.0
* @date 2019-05-10 上午11:19:49
* Environment: Windows 10
* IDE Version: Eclipse 2019-3
* JDK Version: JDK1.8.0_112
*/
import java.io.BufferedInputStream;
import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(new BufferedInputStream(System.in));
int n, k;
Integer[] a = new Integer[100];
while (sc.hasNext()) {
n = sc.nextInt();
k = sc.nextInt();
for (int i = 0; i < n; i++) {
a[i] = sc.nextInt();
}
if (1 == k) { // 升序
Arrays.sort(a, 0, n);
} else { // 降序
Arrays.sort(a, 0, n, Collections.reverseOrder());
}
for (int i = 0; i < n - 1; i++) {
System.out.print(a[i] + " ");
}
System.out.println(a[n - 1]);
}
sc.close();
}
}
WUSTOJ 1247: 递增或递减排序(Java)的更多相关文章
- Java的自动递增和递减
和C 类似,Java 提供了丰富的快捷运算方式.这些快捷运算可使代码更清爽,更易录入,也更易读者辨读.两种很不错的快捷运算方式是递增和递减运算符(常称作"自动递增"和"自 ...
- 《剑指Offer》第1题(Java实现):在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
一.题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该 ...
- 希尔排序及希尔排序java代码
原文链接:http://www.orlion.ga/193/ 由上图可看到希尔排序先约定一个间隔(图中是4),然后对0.4.8这个三个位置的数据进行插入排序,然后向右移一位对位置1.5.9进行插入排序 ...
- js验证连续两位数字递增或递减和连续三位数字相同
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...
- tkinter中spinbox递增和递减控件(十)
spinbox递增和递减控件 import tkinter wuya = tkinter.Tk() wuya.title("wuya") wuya.geometry("3 ...
- cf1144G 将串分解成单调递增和递减子串(贪心)
这算哪门子dp.. 具体做法就是贪心,建立两个vector存递增序列递减序列,操作过程中a可以合法地匀一个给b 就是判断第i个数放在递增序列里还是放在递减序列里,需要根据后面的数来进行决策 #incl ...
- JavaScript运算符:递增和递减(++i,--i 和 i++,i-- 的区别)
递增和递减操作符直接借鉴自C,而且各有两个版本:前置型 (递增 ++i ,递减 --i )和 后置型 (递增 i++ ,递减 i-- ).书本上对两者的定义是:前置型应该位于要操作的变量之前,而后置型 ...
- 算法练习5---快速排序Java版
基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成 ...
- ElasticSearch中设置排序Java
有用的链接:http://stackoverflow.com/questions/12215380/sorting-on-several-fields-in-elasticsearch 有的时候,需要 ...
随机推荐
- C++标准库分析总结(四)——<Vector、Array、Forward_list设计原则>
本节主要总结标准库Vector和Array的设计方法和特性以及相关迭代器内部特征 1.Vector 1.1 Vector 内部实现 Vector是自增长的数组,其实在标准库中没有任何一种容器能原地扩充 ...
- hadoop(10)---hdfs配置文件详解
以下只是简单的对hdfs(hdfs.site.xml)配置文件做一个简单的说明. <configuration><property><!-- 为namenode集群定义一 ...
- Effective Java 3
<Effective Java>作者是美国的Joshua Bloch,连Gosling都说需要看的书,讨论的是更深层次的Java开发技术,适合于有一定Java基础的人看. 这是一本分享经验 ...
- GitHub发卡系统zfaka配置历程
GitHub发卡系统zfaka配置历程 1项目介绍 ZFAKA发卡系统(本系统基于yaf+layui开发) 项目地址 https://github.com/zlkbdotnet/zfaka 我 ...
- jQuery 设置select,radio的值,无法自动触发绑定的change事件
一.问题 今天在对select和radio做change事件绑定后,手动设置其value值,但是不能触发change事件 二.解决 使用trigger方法手动触发
- Linux中系统状态检测命令
1.ifconfig用于获取网卡配置与网络状态等信息,格式为:ifconfig [网络设备] [参数] 2.uname命令用于查看系统内核版本等信息,格式为:uname [-a] 查看系统的内核名称. ...
- error: cannot connect to daemon解决办法
本文链接:https://blog.csdn.net/ipinki1218/article/details/80704806运行adb shell时出现error: cannot connect to ...
- git notes的使用
1. 获取notes git fetch origin refs/notes/*:refs/notes/* 2. 设置notes 2.1 git config --add core.notesRef ...
- CV1——学习笔记
计算机视觉(computer vision)是从图像和视频中提出数值或符号信息的计算系统,更形象一点说,计算机视觉是让计算机具备像人类一样的眼睛,看到图像,并理解图像. 计算机视觉三大应用:识别.检测 ...
- Java并发包线程池之ForkJoinPool即ForkJoin框架(二)
前言 前面介绍了ForkJoinPool相关的两个类ForkJoinTask.ForkJoinWorkerThread,现在开始了解ForkJoinPool.ForkJoinPool也是实现了Exec ...