সমস্যা বিবৃতি
N উপাদানগুলির একটি অ্যারে অ্যারে[] দেওয়া হয়েছে এবং একটি পূর্ণসংখ্যা K যেখানে K
যদি ইনপুট অ্যারে হয় {1, 3, 2, 5} এবং k =3 তাহলে −
- বাছাই করা অ্যারে হয়ে যায় {1, 2, 3, 5
- 3টি উপাদান সন্নিবেশ করান যা 5-এর বেশি। এই অপারেশনের পরে অ্যারে হয়ে যায় {1, 2, 3, 5, 6, 6, 6
- নতুন অ্যারের মাঝারি হল 5
অ্যালগরিদম
<পূর্ব>1. ফলস্বরূপ অ্যারের মধ্যমাকে সর্বাধিক করার জন্য, যে সমস্ত উপাদানগুলিকে সন্নিবেশ করতে হবে সেগুলি অবশ্যই অ্যারে2 থেকে সর্বাধিক উপাদানের চেয়ে বেশি হতে হবে। অ্যারে সাজান এবং অ্যারের মাঝামাঝি হবে arr[size / 2] যদি সাইজটি বিজোড় হয় (arr[(size / 2) – 1] + arr[size / 2]) / 2উদাহরণ
#includeনেমস্পেস ব্যবহার করে std;ডাবল getMaxMedian(int *arr, int n, int k){ int newSize =n + k; ডবল মিডিয়ান; sort(arr, arr + n); যদি (নতুন সাইজ % 2 ==0) { মধ্যমা =(arr[(newSize / 2) - 1] + arr[newSize / 2]) / 2; ফিরতি মধ্যক; } মধ্যমা =arr[নতুন আকার / 2]; রিটার্ন মিডিয়ান;}int main(){int arr[] ={1, 3, 2, 5}; int n =sizeof(arr) / sizeof(arr[0]); int k =3; cout <<"ম্যাক্স মিডিয়ান =" < আউটপুট
আপনি যখন উপরের প্রোগ্রামটি কম্পাইল এবং এক্সিকিউট করবেন। এটি নিম্নলিখিত আউটপুট তৈরি করে:
সর্বোচ্চ মধ্যমা =5