কম্পিউটার টিউটোরিয়াল

C++-এ K সর্বোচ্চ gầnের ব্যবহৃত (MRU) অ্যাপস প্রোগ্রাম

একটি সংখ্যা k এবং একটি অ্যারে arr[n] দেওয়া আছে যাতে n সংখ্যক ইন্টিজার উপাদান আছে যেগুলো একটি সিস্টেমে খোলা অ্যাপসের আইডি সংরক্ষণ করে; কাজ হল k সংখ্যক সবচেয়ে gầnের ব্যবহৃত অ্যাপস দেখানো, যেমন Alt+Tab চাপলে সব gầnের অ্যাপস দেখায় এবং সবচেয়ে gầnের আগে কম gầnের। প্রতিটি আইডির পজিশন সিস্টেমে ভিন্ন অ্যাপ বোঝায়:

  • arr[0]-এ থাকা আইডি হল বর্তমানে ব্যবহৃত অ্যাপের আইডি।
  • arr[1]-এ থাকা আইডি হল সবচেয়ে gầnের ব্যবহৃত অ্যাপের আইডি।
  • arr[n-1]-এ থাকা আইডি হল সবচেয়ে কম gầnের ব্যবহৃত অ্যাপের আইডি।

নোট - Alt+Tab চাপলে একটি পয়েন্টার থাকে, যা ইন্ডেক্স ০ থেকে শুরু করে সব খোলা অ্যাপের মধ্য দিয়ে যاয়, যা বর্তমানে ব্যবহৃত অ্যাপ।

উদাহরণ

Input: arr[] = {1, 2, 3, 4, 5}, k=2 
Output: 3 1 2 4 5 
Explanation: আমরা আইডি 3 যেন অ্যাপে স্যুইচ করতে চাই, তাই এটি বর্তমানে সক্রিয় অ্যাপ হবে এবং অন্যান্য সক্রিয় অ্যাপগুলো হবে সবচেয়ে gầnের ব্যবহৃত। 
Input: arr[] = {6, 1, 9, 5, 3}, k=3 
Output: 5 6 1 9 3

সমাধানের পদ্ধতি:

  • অ্যারে arr[n] এবং k ইনপুট নিন।
  • যে অ্যাপে ইউজার স্যুইচ করতে চায় তার ইন্ডেক্স k বের করুন।
  • ইন্ডেক্স k-র আইডিকে বর্তমান করুন এবং বাকিগুলো ক্রম অনুযায়ী সাজান।
  • ফলাফল প্রিন্ট করুন।

অ্যালগরিদম

Start 
Step 1-> K সর্বোচ্চ gầnের ব্যবহৃত অ্যাপস বের করার ফাংশন ডিক্লেয়ার 
    void recently(int* arr, int size, int elem) 
    Declare int index = 0 
    Set index = (elem % size) 
    Declare int temp = index, id = arr[index] 
    Loop While temp > 0: 
        Set arr[temp] = arr[--temp] 
    End 
    Set arr[0] = id 
Step 2-> অ্যারে উপাদান প্রিন্ট করার ফাংশন ডিক্লেয়ার 
    void print(int* arr, int size) 
    Loop For i = 0 to size-1: Print arr[i] 
Step 3-> main() 
    Declare int elem = 3 
    Declare int arr[] = {6, 1, 9, 5, 3} 
    Calculate size = sizeof(arr)/sizeof(arr[0]) 
    Call recently(arr, size, elem) 
    Call print(arr, size) 
Stop

উদাহরণ

#include <bits/stdc++.h> 
using namespace std; 
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; 
} 
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
  1. সি++-এ ট্রিতে পূর্বপুরুষ-বংশজ সম্পর্কের কোয়েরি সমাধান

  2. বাইসেকশন মেথড (Bisection Method) C++ প্রোগ্রাম

  3. C++ প্রোগ্রাম: অ্যারে উপাদানগুলোর গুণফল বের করা

  4. C++-এ অক্টাল থেকে ডেসিমেল কনভার্সন প্রোগ্রাম