>백엔드 개발 >C++ >C++를 사용하여 arr = i가 되도록 배열을 재정렬합니다.

C++를 사용하여 arr = i가 되도록 배열을 재정렬합니다.

PHPz
PHPz앞으로
2023-09-13 11:25:021093검색

重新排列一个数组,使得 arr = i,使用 C++

양의 정수형 배열이 있는데, arr[]라고 가정하면 크기는 임의로 지정할 수 있으며 배열의 요소는 0보다 크고 배열 크기보다 작아야 합니다. 작업은 arr[i]가 'i'와 같으면 'i'가 배열에 존재하도록 배열을 재정렬하고, 그렇지 않으면 arr[i] 요소를 -1로 설정하고 최종 결과를 인쇄하는 것입니다.

이 문제에 대한 다양한 입력 및 출력 시나리오를 살펴보겠습니다.

input − int arr[] = {0, 8, 1, 5, 4, 3, 2, 9 }

output − re 배열된 배열은 다음과 같습니다: 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)

input− int arr[] = {1, 2, 6, 9, 10}

output− arr[i] = i가 되도록 배열을 재정렬합니다. -1 1 2 -1 -1

Explanation− 크기 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) 함수를 호출합니다.

  • 함수 안에서 Rearranging(arr, size)

    • 정수형 변수를 선언합니다. ptr

    • from i가 크기보다 작아질 때까지 i에서 0까지 반복을 시작합니다. 루프 내부에서는 j가 크기보다 작아질 때까지 j에서 0까지 또 다른 루프가 시작됩니다.

    • 루프 내에서 arr[j] = i인지 확인한 다음 ptr = arr[j], arr[j] = arr[i], arr[i] = ptr을 설정하고 루프를 중단하세요.

    • i부터 크기까지 반복을 시작합니다. 루프 내부에서 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] << " ";
   }
}

Output

위 코드를 실행하면 다음과 같은 출력이 생성됩니다

Rearrangement of an array such that arr[i] = i is: 0 1 2 3 4 5 -1 -1

위 내용은 C++를 사용하여 arr = i가 되도록 배열을 재정렬합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제