কম্পিউটার

O(n) সময়ে অ্যারের বাম ঘূর্ণন এবং C প্রোগ্রামে O(1) স্থান মুদ্রণ করুন।


আমাদের কিছু আকার n এবং একাধিক পূর্ণসংখ্যা মানের একটি অ্যারে দেওয়া হয়েছে, আমাদের একটি প্রদত্ত সূচক k থেকে একটি অ্যারে ঘোরাতে হবে।

আমরা −

এর মতো সূচক k থেকে একটি অ্যারে ঘোরাতে চাই

O(n) সময়ে অ্যারের বাম ঘূর্ণন এবং C প্রোগ্রামে O(1) স্থান মুদ্রণ করুন।

উদাহরণ

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

অ্যালগরিদম

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

উদাহরণ

#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 << "\n";
}
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;
}

আউটপুট

যদি আমরা উপরের প্রোগ্রামটি চালাই তবে এটি নিম্নলিখিত আউটপুট তৈরি করবে

2 3 4 1
3 4 1 2
4 1 2 3

  1. O(n) সময়ে অ্যারের বাম ঘূর্ণন এবং C প্রোগ্রামে O(1) স্থান মুদ্রণ করুন।

  2. সি প্রোগ্রামে আপেক্ষিক ক্রমে অ্যারের উপাদানগুলির শেষ ঘটনা প্রিন্ট করুন।

  3. সি প্রোগ্রামে অতিরিক্ত স্থান এবং পরিবর্তন ছাড়াই লিঙ্কযুক্ত তালিকার বিপরীত মুদ্রণ করুন।

  4. সি প্রোগ্রাম ফর প্রোগ্রাম ফর অ্যারে রোটেশন?