Java 对负整数数组进行排序,并找到一对较大的整数,与符号无关

Java 对负整数数组进行排序,并找到一对较大的整数,与符号无关,java,arrays,core,Java,Arrays,Core,我有一个整数数组,如下代码所示。我必须在数组中找到一对最大的数。但有一个小小的转折 请参阅下面的代码和输出 public class ArraySort { public static void main(String[] args) { // TODO Auto-generated method stub int[] a = { -9, -2, -10, -1, -4 }; int[] b = null; int n = a.length; int

我有一个整数数组,如下代码所示。我必须在数组中找到一对最大的数。但有一个小小的转折

请参阅下面的代码和输出

public class ArraySort {

public static void main(String[] args) {
    // TODO Auto-generated method stub

    int[] a = { -9, -2, -10, -1, -4 };
    int[] b = null;
    int n = a.length;
    int temp = 0;
    int k = 0;
    for (int i = 0; i < n; i++) {
        for (int j = i + 1; j < n; j++) {
            if (a[i] > a[j]) {
                temp = a[i];
                a[i] = a[j];
                a[j] = temp;
            }
        }
    }
    System.out.println("Ascending Order:");
    for (int i = 0; i < n; i++) {
        System.out.print(a[i] + ",");
    }

    System.out.println("\nPair of larger numbers");

    for (int i = 0; i < n; i++) {
        if (k < 2) {
            if (a[i] > a[n - 1 - i]) {
                System.out.println(a[i]);

            } else {
                System.out.println(a[n-1-i]);
            }
        }
        k++;
    }
  }

}
-10,-9,-4,-2,-1, 一对较大的数字 -1 -二,


但不是将最大的数字显示为-1,-2。我必须显示-10和-9。即使数组包含负值,比较也应该没有减号。

如果所有整数都是负数,为什么不只显示最小的两个整数?

只需添加以下内容:

for(int i = 0; i < a.length; i++){
   a[i] = Math.abs(a[i]);
}
for(int i=0;i

这将把数字转换成正数。或者你可以按照JF说的去做。但是,如果其中一些是正数,这种方法将不起作用。

为了使任务有意义(“困难”),数组可能同时包含负数和正数

绝对最大数的候选值位于数组的开头或结尾:

-13a, -7, -3, -2, -1, 9, 10b
-10b, -7, -3, -2, -1, 9, 13a
-13a, -11b, -3, -2, -1, 9, 10
-8, -7, -3, -2, -1, 9b, 13a
所以在一个循环中可能有两个索引,一个从开始,一个从结束。无重叠(对于-2,4)


因为这是家庭作业,祝你好运。

使用
Math.abs(…)
来获得绝对值有没有办法不使用Math.abs()方法??取较小的值然后。。。你说你只有负值。我投票决定关闭,因为这不太可能。这个问题可能会对未来的人有所帮助。请解释一下你反对
Math.abs()
a[I]=a[I]<0-a[i]:a[i]-13a, -7, -3, -2, -1, 9, 10b
-10b, -7, -3, -2, -1, 9, 13a
-13a, -11b, -3, -2, -1, 9, 10
-8, -7, -3, -2, -1, 9b, 13a