首頁  >  文章  >  後端開發  >  在C++中以升序交替方式重新排列奇數和偶數值

在C++中以升序交替方式重新排列奇數和偶數值

PHPz
PHPz轉載
2023-09-12 18:45:021104瀏覽

在C++中以升序交替方式重新排列奇數和偶數值

我們得到一個包含正數和負數的整數型別數組,比方說,任意給定大小的 arr[] 。任務是以這樣的方式重新排列數組:當數組中的最低元素為奇數時,數組中的元素將以奇數在前、偶數在前的方式重新排列 第二種方式。當數組中的最低元素為偶數時,數組的元素將以偶數第一、奇數第二的方式重新排列,如果偶數/奇數元素的數量大於奇數/偶數元素的數量,則它將放置0 和打印結果。

讓我們來看看各種輸入輸出場景-

輸入− int arr[] = { 1, 1, 2, 2 , 5, 4 }

輸出− 以交替方式依升序排列的奇數和偶數值為:1 2 1 2 5 4。

解釋- 我們得到一個整數型別陣列。現在我們將檢查數組中最小的元素,即 1 是奇數,因此元素將首先排列在奇數中, 甚至第二種方式,即 1 2 1 2 5 4 是最終輸出。

輸入− int arr[] = { 6, 3, 2, 8, 10, 4 }

輸出− 以交替方式按升序重新排列奇數和偶數值是:2 3 4 0 6 0

#解釋 − 我們得到一個整數型別陣列。現在我們將檢查數組中最小的元素,即2 是偶數,因此elem

下面程式中使用的方法如下

    輸入一個整數元素數組,並計算數組的大小。

  • 使用 C STL 的排序方法對陣列進行排序,傳遞陣列和大小排序函數的陣列。

  • 宣告一個整數變數並透過呼叫函數Rearrangement(arr, size) 來設定它

  • 在函數Rearrangement(arr, size)內

    • 建立兩個變數「vec_1」和「vec_2」作為儲存的向量類型整數類型資料。

    • 建立一個整數類型的暫存變數 temp 並將其設為 0。

    • 聲明另一個變數bool 類型作為檢查,並將其設為 FALSE。

    • 開始從 i 到 0 的 FOR 循環,直到 i 小於 size。在循環內部,檢查 IF arr[i] % 2 = 0,然後將 arr[i] 推入 vec_1。否則,將 arr[i] 推入 vec_2。

    • 將整數變數宣告為 i 和 j 為 0。檢查 IF arr[0] % 2 = 0,然後將檢查設為 true。

    • 當溫度小於大小時啟動。在循環內,檢查 IF check = true,然後將 arr[temp ] 設為 vec_1[i ] 並將 check 設為 !check。否則,將 arr[temp ] 轉換為 vec_2[j ] 並將檢查設為 !check。

  • 列印結果。

    li>

範例

#include <bits/stdc++.h>
using namespace std;
void Rearrangement(int arr[], int size){
   vector<int> vec_1, vec_2;
   int temp = 0;
   bool check = false;
   for(int i = 0; i < size; i++){
      if(arr[i] % 2 == 0){
         vec_1.push_back(arr[i]);
      }
      else{
         vec_2.push_back(arr[i]);
      }
   }
   int i = 0;
   int j = 0;
   if(arr[0] % 2 == 0){
      check = true;
   }
   while(temp < size){
      if(check == true){
         arr[temp++] = vec_1[i++];
         check = !check;
      }
      else{
         arr[temp++] = vec_2[j++];
         check = !check;
      }
   }
}
int main(){
   int arr[] = { 1, 1, 2, 2, 5, 4 };
   int size = sizeof(arr) / sizeof(int);
   //sort an array
   sort(arr, arr + size);
   cout<<"Rearrangement of Odd and Even values in Alternate Fashion in Ascending Order is: ";
   Rearrangement(arr, size);
   for(int i = 0; i < size; i++){
      cout << arr[i] << " ";
   }
   return 0;
}

輸出

如果我們執行上面的程式碼,它將產生以下輸出

Rearrangement of Odd and Even values in Alternate Fashion in Ascending Order is: 1 2 1 2 5 4
#

以上是在C++中以升序交替方式重新排列奇數和偶數值的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除