>백엔드 개발 >C++ >O(n) 시간 복잡도와 O(1) 공간 복잡도로 C 프로그램에서 배열의 왼쪽 회전을 인쇄합니다.

O(n) 시간 복잡도와 O(1) 공간 복잡도로 C 프로그램에서 배열의 왼쪽 회전을 인쇄합니다.

PHPz
PHPz앞으로
2023-09-10 15:45:07608검색

크기 n의 배열과 여러 개의 정수 값이 주어지면 주어진 인덱스 k부터 시작하여 배열을 회전해야 합니다.

아래와 같이 인덱스 k부터 시작하여 배열을 회전하려고 합니다. - p>

O(n) 시간 복잡도와 O(1) 공간 복잡도로 C 프로그램에서 배열의 왼쪽 회전을 인쇄합니다.

Example

Input: arr[] = {1, 2, 3, 4, 5}
   K1 = 1
   K2 = 3
   K3 = 6
Output:
   2 3 4 5 1
   4 5 1 2 3
   2 3 4 5 1

Algorithm

START
Step 1 -> Declare function void leftRotate(int arr[], int n, int k)
   Declare int cal = k% n
   Loop For int i=0 and i<n and i++
      Print arr[(cal+i)%n]
   End
Step 2 -> In main()
   Declare array a[]={ 1,2,3,4}
   Declare int size=sizeof(a)/sizeof(a[0])
   Declare int k=1
   Call leftRotate(a, size, k)
   Set k=2
   Call leftRotate(a, size, k)
   Set k=3
   leftRotate(a, size, k)
STOP

Example

#include <bits/stdc++.h>
using namespace std;
void leftRotate(int arr[], int n, int k){
   int cal = k % n;
   for (int i = 0; i < n; i++)
      cout << (arr[(cal + i) % n]) << " ";
   cout << "</p><p>";
}
int main(){
   int a[] = { 1,2,3,4};
   int size = sizeof(a) / sizeof(a[0]);
   int k = 1;
   leftRotate(a, size, k);
   k = 2;
   leftRotate(a, size, k);
   k = 3;
   leftRotate(a, size, k);
   return 0;
}

Output

위 프로그램을 실행하면 다음과 같은 출력이 생성됩니다

으으으으

위 내용은 O(n) 시간 복잡도와 O(1) 공간 복잡도로 C 프로그램에서 배열의 왼쪽 회전을 인쇄합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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