ECNU 2031 绝对值排序

EECNU 2031 绝对值排序

链接

https://acm.ecnu.edu.cn/problem/2031

题目

单点时限: 2.0 sec

内存限制: 256 MB

给你 个数,要求你把这 个数按照绝对值从小到大排序。

多 ,处理直到文件结束。

输入格式
输入一个数 n,接下来一行是n 个整数 。

输出格式
排序后按照绝对值从小到大输出 n 个数,输出一行,每两个数字之间有个空格,最后一个数字后面没空格。

样例
input
4
-3 -4 1 2
1
10
output
1 2 -3 -4
10

思路

正常的输入排序,只需要在排序的时候用绝对值进行即可,用数组或者线性表都行。

代码

    public static void fun() {
    Scanner sc = new Scanner(System.in);
    while (sc.hasNext()) {
      int n = sc.nextInt();
      ArrayList<Integer> list = new ArrayList<>();
      for (int i = 0; i < n; i++) {
        int t = sc.nextInt();
        list.add(t);
      }
      list.sort(new Comparator<Integer>() {
        @Override
        public int compare(Integer o1, Integer o2) {
          int a = Math.abs(o1);
          int b = Math.abs(o2);
          return a - b;
        }
      });
      for (int i=0;i<n;i++)
      {
        System.out.print(list.get(i));
        if(i!=n-1)
        {
          System.out.print(" ");
        }
      }
      System.out.println();
    }
  }
posted @ 2021-02-23 22:00  cheng102e  阅读(79)  评论(0编辑  收藏  举报