[英]Sorting an int array by sign(positive, zero, negative) without sort method
[英]Sort array of negative integers and find pair of Larger integer irrespective of sign
我有一個整數數組,如下面的代碼所示。 我必須在數組中找到一對最大的數字。 但是有一個小轉折。
請參見下面的代碼和輸出。
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++;
}
}
}
其輸出顯示為
Ascending Order:
-10,-9,-4,-2,-1,一對大數-1 -2
但是,不是顯示最大的數字為-1,-2。 我必須顯示-10和-9。 即使數組包含負值,比較也應沒有負號。
如果您所有的整數都是負數,為什么不只顯示最小的兩個整數?
只需添加以下內容:
for(int i = 0; i < a.length; i++){
a[i] = Math.abs(a[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)。
由於這是家庭作業,祝您好運。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.