中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

調整數組順序使奇數位于偶數前面——14

發布時間:2020-07-05 03:52:59 來源:網絡 閱讀:457 作者:給我個bit位 欄目:編程語言

   輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有奇數位于數組的前半部分,所有偶數位于數組的后半部分。

 

    首先,可以想到,用前后兩個指針一個在數組首一個在數組尾同時往數組中間遍歷,當遇到前指針遇到偶數后指針遇到奇數時,就將兩個數交換,直到兩指針相遇或者前指針超過了后指針,這個有點類似快速排序的思想;

程序設計如下:

#include <iostream>
#include <assert.h>
using namespace std;

void AdjustArr(int *parr, size_t size)   //調整數組
{
    assert(parr && size);

    int *start = parr;
    int *end = parr+size-1;

    while(start < end)
    {   
        while((start < end)&&((*start % 2) != 0))//當start指針遇到偶數停止
            ++start;
        while((start < end)&&((*end % 2) == 0))  //當end指針遇到奇數停止
            --end;
        if(start < end)//判斷start和end位置
        {   swap(*start, *end);
            ++start;
            --end;
        }
        else
            return;
    }   
}

void PrintArr(int *parr, size_t size)  //打印數組
{
    assert(parr && size);

    for(size_t i = 0; i < size; ++i)
    {   
        cout<<parr[i]<<" ";
    }   
    cout<<endl;
}

int main()
{
    int arr[] = {1,5,2,4,6,11,3,8,0,7};
    size_t size = sizeof(arr)/sizeof(arr[0]);

    PrintArr(arr, size);
    AdjustArr(arr, size);
    PrintArr(arr, size);

    return 0;
}


運行程序,結果:

調整數組順序使奇數位于偶數前面——14



《完》

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

绍兴市| 丹巴县| 合作市| 泗阳县| 金山区| 七台河市| 富锦市| 涞水县| 澎湖县| 四会市| 永嘉县| 嵩明县| 北京市| 宿松县| 利津县| 彝良县| 花莲县| 鸡东县| 西华县| 东乡族自治县| 新干县| 云龙县| 合作市| 屏东市| 呼图壁县| 洪泽县| 赣榆县| 三河市| 监利县| 浦城县| 奉贤区| 华亭县| 定边县| 贡嘎县| 武平县| 内江市| 闽侯县| 邵武市| 临湘市| 潞西市| 上杭县|