簡體   English   中英

如何從奇數和偶數整數數組中僅對奇數整數排序並僅顯示排序的奇數整數?

[英]How to sort only odd integers from an array of both odd and even integers and only display the sorted odd integer?

這是給我的整數數組111,77,88,44,32,11,13,25,44我只需要對數組的奇數元素進行排序和顯示。

我曾嘗試使用循環和if條件來解決它

我曾預期輸出為11 13 25 77 111

import java.lang.reflect.Array;

public class oddsortSolution {

    public static void main(String args[]) {
        int n[] = { 111, 77, 88, 44, 32, 11, 13, 25, 44 };
        int i = 0;
        int temp = 0;
        while (i < n.length) {
            if (n[i] % 2 != 0) {
                for (int j = i + 1; j < n.length; j++) {
                    if (n[j] > n[i]) {
                        n[j] = temp;
                        n[j] = n[i];
                        n[i] = temp;
                    }
                }
            }
        }

        System.out.println(n[1]);

    }

}

基本上,您需要跟蹤奇數數組的大小,每次找到奇數值時都將其遞增,確定是否應在現有數組中的某個位置交換該值(范圍從0到奇數數組大小)並將其插入正確的位置。 試試下面的代碼,

public class oddsortSolution {
    public static void main(String args[]) {
        int n[] = { 111, 77, 88, 44, 32, 11, 13, 25, 44 };
        int oddArraySize = 0;        
        for (int i = 0;i < n.length; i++) {
            if (n[i] % 2 != 0) {
                oddArraySize++;
                for (int j = 0; j < oddArraySize; j++) {
                    if (j == oddArraySize - 1) {
                        n[j] = n[i];
                    } else if (n[j] > n[i]) {
                        int temp = n[j];
                        n[j] = n[i];
                        n[i] = temp;
                    }
                }
            }
        }
        int[] oddArray = Arrays.copyOfRange(n, 0, oddArraySize);
        System.out.println( Arrays.toString( oddArray ));
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM