第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何讓所有偶數(shù)先出現(xiàn),然后奇數(shù)出現(xiàn)?

如何讓所有偶數(shù)先出現(xiàn),然后奇數(shù)出現(xiàn)?

慕哥6287543 2023-09-27 17:24:05
我遇到的問(wèn)題是如何重新排列 int 值數(shù)組,以便所有偶數(shù)值出現(xiàn)在所有奇數(shù)值之前。下面是我的編碼:   import java.io.*;   public class EvenAppearBeforeOdd {// function to rearrange the array in given way. static void rearrangeEvenAndOdd(int arr[], int n) {     // variables     int j = -1,temp;     // quick sort method     for (int i = 0; i < n; i++) {         // if array of element         // is odd then swap         if (arr[i] % 2 == 0) {             // increment j by one             j++;             // swap the element             temp = arr[i];             arr[i] = arr[j];             arr[j] = temp;         }     } } // Driver code public static void main(String args[]) {     int arr[] = { 15, 9, 1, 3, 10, 5, 4, 8 };     System.out.println("\n\nBefore\n");    System.out.println(arr[]);     try {        System.out.println(EvenAppearBeforeOdd.rearrangeEvenAndOdd(arr);    } catch (Exception e) {        System.out.println("Error!!!");   }    int n = arr.length;     rearrangeEvenAndOdd(arr, n);   System.out.println("\n\nAfter\n");    for (int i = 0; i < n; i++)         System.out.print(arr[i] + " "); }   } 錯(cuò)誤輸出如下所示:  run:  C:\Users\User\AppData\Local\NetBeans\Cache\8.0.2\executor-snippets\run.xml:48:   Cancelled by user.  BUILD FAILED (total time: 3 seconds)實(shí)際上我想要如下的輸出:  run:  Before  15 9 1 3 10 5 4 8   After  10 4 8 3 15 5 9 1 BUILD SUCCESSFUL (total time: 0 seconds)希望有人能幫我檢查一下我的代碼哪部分錯(cuò)了?多謝。
查看完整描述

3 回答

?
holdtom

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超10個(gè)贊

下面給出的是產(chǎn)生與示例輸入和輸出相匹配的結(jié)果的答案:


public class EvenAppearBeforeOdd {    

    static void rearrangeEvenAndOdd(int arr[]) {

        int j = 0, temp;

        for (int i = 0; i < arr.length; i++) {

            if (arr[i] % 2 == 0) {

                temp = arr[j];

                arr[j] = arr[i];

                arr[i] = temp;

                j++;

            }

        }

    }

    static void printArray(int arr[]) {

        for(int i=0;i<arr.length;i++)

            System.out.print(arr[i]+"\t");

        System.out.println();

    }

    public static void main(String args[]) {

        int arr[] = { 15, 9, 1, 3, 10, 5, 4, 8 };

        System.out.println("Before:");

        printArray(arr);

        rearrangeEvenAndOdd(arr);

        System.out.println("After:");

        printArray(arr);

    }

}

你可以將你的答案與它進(jìn)行比較,很容易找到錯(cuò)誤。如果您仍有任何問(wèn)題,請(qǐng)隨時(shí)發(fā)表評(píng)論。


更新 [2019 年 10 月 6 日 19:00]:


為了解決WJS提出的問(wèn)題,rearrangeEvenAndOdd方法可以寫(xiě)成:


static void rearrangeEvenAndOdd(int arr[]) {

    int j, temp;

    for (int i = 0; i < arr.length; i++) {

        if (arr[i] % 2 == 0) {

            temp = arr[i];

            j=i-1;

            while(j>=0 && arr[j]%2==1) {

                arr[j+1]=arr[j];

                j--;

            }

            arr[j+1]=temp;

        }

    }

}

但是,它不會(huì)生成與示例輸入和輸出匹配的結(jié)果,即輸入數(shù)組為 { 15, 9, 1, 3, 10, 5, 4, 8 },結(jié)果將生成為 {10, 4, 8 , 15, 9, 1, 3, 5} 而不是您的示例輸出,即 {10, 4, 8, 3, 15, 5, 9, 1}。


查看完整回答
反對(duì) 回復(fù) 2023-09-27
?
偶然的你

TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊

如果您必須在算法中不使用任何額外的內(nèi)存,那么我們必須找到一種方法來(lái)修復(fù)您當(dāng)前的方法。我認(rèn)為概念上最簡(jiǎn)單的方法是使用重復(fù)的空數(shù)組來(lái)構(gòu)建輸出。首先,迭代輸入數(shù)組并復(fù)制所有偶數(shù)值。然后,再次迭代并復(fù)制所有奇數(shù)值。


static int[] rearrangeEvenAndOdd(int arr[], int n) {

    int[] output = new int[n];

    int count = 0;


    for (int i=0; i < n; ++i) {

        if (arr[i] % 2 == 0) output[count++] = arr[i];

    }


    for (int i=0; i < n; ++i) {

        if (arr[i] % 2 == 1) output[count++] = arr[i];

    }


    return output;

}


public static void main (String[] args) {

    int[] arr = { 15, 9, 1, 3, 10, 5, 4, 8 };

    System.out.println(Arrays.toString(arr));

    arr = rearrangeEvenAndOdd(arr, arr.length);

    System.out.println(Arrays.toString(arr));

}

這打?。?/p>


[15, 9, 1, 3, 10, 5, 4, 8]

[10, 4, 8, 15, 9, 1, 3, 5]

請(qǐng)注意,這是一個(gè)線性解決方案,需要對(duì)輸入數(shù)組進(jìn)行兩次完整掃描,并且還需要兩倍的輸入存儲(chǔ)空間。


查看完整回答
反對(duì) 回復(fù) 2023-09-27
?
蕭十郎

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個(gè)贊

你的語(yǔ)法似乎錯(cuò)誤。


不確定它是否是勘誤表,但您應(yīng)該嘗試在編輯器(eclipse)中進(jìn)行編譯。


它將顯示有關(guān)語(yǔ)法的所有錯(cuò)誤和警告。


System.out.println(arr[]);

System.out.println(EvenAppearBeforeOdd.rearrangeEvenAndOdd(arr);


查看完整回答
反對(duì) 回復(fù) 2023-09-27
  • 3 回答
  • 0 關(guān)注
  • 181 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)