양수와 음수를 모두 포함하는 정수 유형 배열이 제공됩니다. 예를 들어 주어진 크기의 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