Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 오름차순으로 대체 방식으로 홀수 및 짝수 값 재정렬

<시간/>

양수와 음수를 모두 포함하는 정수 유형 배열이 제공됩니다. 예를 들어 주어진 크기의 arr[]입니다. 작업은 배열의 가장 낮은 요소가 홀수일 때 배열의 요소가 홀수 첫 번째 및 짝수 번째 방식으로 재배열되는 방식으로 배열을 재배열하는 것입니다. 배열의 가장 낮은 요소가 짝수이면 배열의 요소는 짝수 첫 번째 및 홀수 두 번째 방식으로 재배열되며 짝수/홀수 요소의 수가 홀수/짝수 요소의 수보다 크면 0을 배치하고 결과를 인쇄하십시오.

여기에 대한 다양한 입력 출력 시나리오를 살펴보겠습니다 -

입력 - 정수 arr[] ={ 1, 1, 2, 2, 5, 4 }

출력 − 오름차순으로 대체 방식의 홀수 및 짝수 값 재정렬:1 2 1 2 5 4.

설명 - 정수형 배열이 주어진다. 이제 우리는 배열에서 가장 작은 요소가 무엇인지 확인할 것입니다. 즉 1은 홀수 값이므로 요소가 홀수 첫 번째 및 짝수 번째 방식으로 배열됩니다. 즉 1 2 1 2 5 4가 최종 출력입니다.

입력 - 정수 arr[] ={ 6, 3, 2, 8, 10, 4 }

출력 − 오름차순으로 대체 방식의 홀수 및 짝수 값 재정렬:2 3 4 0 6 0

설명 - 정수형 배열이 주어진다. 이제 우리는 배열에서 가장 작은 요소가 무엇인지 확인할 것입니다. 즉 2는 짝수이므로 elem

아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.

  • 정수형 요소의 배열을 입력하고 배열의 크기를 계산합니다.

  • C++ STL의 sort 메소드를 사용하여 배열과 배열의 크기를 sort 함수에 전달하여 배열을 정렬합니다.

  • 정수 변수를 선언하고 함수를 호출하여 설정합니다.Rearrangement(arr, size)

  • Rearrangement(arr, size)

    함수 내부
    • 정수형 데이터를 저장하는 벡터형으로 'vec_1'과 'vec_2'로 두 개의 변수를 생성합니다.

    • 정수 유형의 임시 변수를 temp로 생성하고 0으로 설정합니다.

    • bool 유형의 다른 변수를 check로 선언하고 값을 FALSE로 설정합니다.

    • i에서 크기보다 작아질 때까지 FOR 루프를 시작합니다. 루프 내에서 IF arr[i] % 2 =0을 확인한 다음 arr[i]를 vec_1로 푸시합니다. 그렇지 않으면 arr[i]를 vec_2로 푸시합니다.

    • 정수 변수를 i 및 j를 0으로 선언합니다. IF arr[0] % 2 =0을 확인한 다음 확인을 true로 설정합니다.

    • WHILE 온도가 크기보다 작습니다. 루프 내에서 IF check =true를 확인한 다음 arr[temp++]를 vec_1[i++]로 설정하고 check를 !check로 설정합니다. ELSE, arr[temp++]를 vec_2[j++]로 설정하고 검사를 !check로 설정합니다.

  • 결과를 인쇄하십시오.

#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