একটি সংখ্যা k এবং একটি অ্যারে অ্যারে [n] দেওয়া, n সংখ্যার পূর্ণসংখ্যা উপাদান রয়েছে যা একটি সিস্টেমে খোলা অ্যাপগুলির আইডি সংরক্ষণ করছে; কাজটি হল সবচেয়ে সাম্প্রতিক ব্যবহৃত অ্যাপগুলির k সংখ্যা দেখানো, যেমন আমরা যখন alt+tab চাপি তখন সব সাম্প্রতিক অ্যাপ দেখায় এবং সাম্প্রতিকতমের আগে সাম্প্রতিকতম অ্যাপ দেখায়। প্রতিটি আইডির অবস্থান একটি সিস্টেমে বিভিন্ন অ্যাপের প্রতিনিধিত্ব করে −
তারা নিম্নরূপ -
- আইডি ইন arr[0] হল একটি অ্যাপের আইডি যা বর্তমানে ব্যবহার করা হচ্ছে।
- আইডি ইন arr[1] হল একটি অ্যাপের আইডি যা সম্প্রতি ব্যবহৃত হয়েছে।
- আইডি ইন arr[n-1] হল এমন একটি অ্যাপের আইডি যা সম্প্রতি ব্যবহার করা হয়েছে।
দ্রষ্টব্য − যখন আমরা Alt+Tab কী চাপি সেখানে একটি পয়েন্টার থাকে, যা সূচী ০ থেকে শুরু করে সমস্ত খোলা অ্যাপের মধ্য দিয়ে চলে যায়, যে অ্যাপটি বর্তমানে ব্যবহার করা হচ্ছে।
উদাহরণ
Input: arr[] = {1, 2, 3, 4, 5}, k=2 Output: 3 1 2 4 5 Explanation: We wished to switched the app with id 3, so it will become the currently active app and other active apps will be the most recently used now Input: arr[] = {6, 1, 9, 5, 3}, k=3 Output: 5 6 1 9 3
উপরের সমস্যা সমাধানের জন্য আমরা যে পদ্ধতি ব্যবহার করব −
- ইনপুট হিসাবে একটি অ্যারে arr[n] এবং k নিন।
- একজন ব্যবহারকারী যে অ্যাপটি স্যুইচ করতে চান তার সূচী পাবেন অর্থাৎ k।
- ইনডেক্স k-এ আইডিকে কারেন্ট হিসাবে তৈরি করুন এবং তারপরে সেগুলি একটি ক্রম অনুসারে সাজান৷
- ফলাফল প্রিন্ট করুন।
অ্যালগরিদম
Start Step 1-> declare the function to find k most recently used apps void recently(int* arr, int size, int elem) Declare int index = 0 Set index = (elem % size) Declare and set int temp = index, id = arr[index] Loop While temp > 0 Set arr[temp] = arr[--temp] End Set arr[0] = id Step 2-> declare function to print array elements void print(int* arr, int size) Loop For i = 0 and i < size and i++ Print arr[i] End Step 3-> In main() Declare and set for elements as int elem = 3 Declare array as int arr[] = { 6, 1, 9, 5, 3 } Calculate size as int size = sizeof(arr) / sizeof(arr[0]) Call recently(arr, size, elem) Call print(arr, size) Stop
উদাহরণ
#include <bits/stdc++.h> using namespace std; // Function to update the array in most recently used fashion void recently(int* arr, int size, int elem) { int index = 0; index = (elem % size); int temp = index, id = arr[index]; while (temp > 0) { arr[temp] = arr[--temp]; } arr[0] = id; } //print array elements void print(int* arr, int size) { for (int i = 0; i < size; i++) cout << arr[i] << " "; } int main() { int elem = 3; int arr[] = { 6, 1, 9, 5, 3 }; int size = sizeof(arr) / sizeof(arr[0]); recently(arr, size, elem); cout<<"array in most recently used fashion : "; print(arr, size); return 0; }
আউটপুট
array in most recently used fashion : 5 6 1 9 3