우리는 배열의 요소가 0보다 크고 배열 크기보다 작은 값을 가져야 하는 임의의 주어진 크기의 arr[]와 같은 양의 정수 유형 배열이 제공됩니다. 작업은 arr[i]가 'i'인 경우 배열을 재배열하는 것입니다. 배열에 'i'가 있으면 값이 -1인 arr[i] 요소를 설정하고 최종 값을 인쇄합니다. 결과입니다.
여기에 대한 다양한 입력 출력 시나리오를 살펴보겠습니다 -
입력 - 정수 arr[] ={0, 8, 1, 5, 4, 3, 2, 9 }
출력 − arr[i] =i가 되도록 배열을 재배열:0 1 2 3 4 5 -1 -1
설명 − 크기가 8인 정수 배열과 8보다 작은 배열 값이 있는 모든 요소가 제공됩니다. 이제 배열을 다시 정렬합니다. 즉,
arr[0] = 0(present in an array) arr[1] = 1(present in an array) arr[2] = 2(present in an array) arr[3] = 3(present in an array) arr[4] = 4(present in an array) arr[5] = 5(present in an array) arr[6] = -1(NOT present in an array) arr[7] = -1(NOT present in an array)
입력 - 정수 arr[] ={1, 2, 6, 9, 10}
출력 - arr[i] =i가 되도록 배열을 재배열:-1 1 2 -1 -1
설명 - 우리는 크기가 5인 정수 배열과 5보다 작은 배열 값이 주어진다. 이제 배열을 재정렬할 것이다. 즉
arr[0] = -1(NOT present in an array) arr[1] = 1(present in an array) arr[2] = 2(present in an array) arr[3] = -1(NOT present in an array) arr[4] = -1(NOT present in an array)
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
-
정수형 요소의 배열을 입력하고 배열의 크기를 계산합니다.
-
배열 전에 배열을 인쇄하고 함수를 호출하십시오.Rearranging(arr, size)
-
함수 내부 재정렬(arr, 크기)
-
정수형 변수 선언 ptr
-
i에서 크기보다 작아질 때까지 FOR 루프를 시작합니다. 루프 내에서 j가 크기보다 작아질 때까지 j에서 0까지 다른 루프 FOR를 시작합니다.
-
루프 내에서 IF arr[j] =i를 확인한 다음 ptr =arr[j], arr[j]를 arr[i]로, arr[i]를 ptr로 설정하고 중단합니다.
-
i에서 i가 크기보다 작을 때까지 루프 FOR를 시작합니다. 루프 내에서 IF arr[i]!=i를 확인한 다음 arr[i]를 -1로 설정합니다.
-
-
배열의 값을 재배열한 후 배열을 출력합니다.
예
#include <iostream> using namespace std; void Rearranging(int arr[], int size){ int ptr; for(int i = 0; i < size; i++){ for(int j = 0; j < size; j++){ if(arr[j] == i){ ptr = arr[j]; arr[j] = arr[i]; arr[i] = ptr; break; } } } for(int i = 0; i < size; i++){ if(arr[i] != i){ arr[i] = -1; } } } int main(){ int arr[] = {0, 8, 1, 5, 4, 3, 2, 9 }; int size = sizeof(arr) / sizeof(arr[0]); //calling the function to rearrange an array such that arr[i] = i Rearranging(arr, size); //Printing the array cout<<"Rearrangement of an array such that arr[i] = i is: "; for(int i = 0; i < size; i++){ cout << arr[i] << " "; } }
출력
위의 코드를 실행하면 다음과 같은 출력이 생성됩니다.
Rearrangement of an array such that arr[i] = i is: 0 1 2 3 4 5 -1 -1