কম্পিউটার

C++ এ পূর্ণসংখ্যার (চলমান পূর্ণসংখ্যা) একটি প্রবাহে মধ্যমা


সমস্যা বিবৃতি

প্রদত্ত যে পূর্ণসংখ্যাগুলি একটি ডেটা স্ট্রিম থেকে পড়া হয়। একটি দক্ষ উপায়ে পড়ার জন্য উপাদানগুলির মধ্যমা খুঁজুন

স্ট্রিমের ১ম উপাদান পড়ার পর - 10 -> মধ্যমা - 10

স্ট্রিমের ২য় উপাদান পড়ার পর - 10, 20 -> মধ্যমা - 15

স্ট্রিমের 3য় উপাদান পড়ার পর - 10, 20, 30 -> মধ্যমা - 20, তাই...

অ্যালগরিদম

<পূর্ব>1. কার্যকরী মধ্যকার থেকে কম উপাদানগুলিকে উপস্থাপন করতে বাম দিকে একটি সর্বোচ্চ হিপ ব্যবহার করুন এবং কার্যকরী মধ্যক 2 থেকে বড় উপাদানগুলিকে উপস্থাপন করতে ডানদিকে একটি মিনিমস্তিপ ব্যবহার করুন৷ একটি আগত উপাদান প্রক্রিয়াকরণের পরে, স্তূপের মধ্যে উপাদানগুলির সংখ্যা 1 উপাদান3 দ্বারা সর্বাধিক পৃথক হয়৷ যখন উভয় হিপে একই সংখ্যক উপাদান থাকে, তখন আমরা কার্যকরী মধ্যকার 4 হিসাবে হিপস রুট ডেটার গড় বাছাই করি। যখন স্তূপগুলি ভারসাম্যপূর্ণ না হয়, তখন আমরা আরও উপাদান ধারণকারী স্তূপের মূল থেকে কার্যকর মধ্যক নির্বাচন করি।

উদাহরণ

#include নেমস্পেস ব্যবহার করে std;#define MAX_HEAP_SIZE (128)#define ARRAY_SIZE(a) sizeof(a)/sizeof(a[0])inline void Exch(int &a, int &b){ int aux =a; a =b; b =aux;} bool Greater(int a, int b){ return a> b;} bool Smaller(int a, int b){ রিটার্ন a =0 ) { সর্বোচ্চ =A[0]; } সর্বোচ্চ রিটার্ন; } int count(){ রিটার্ন heapSize + 1; } void heapify(int i){ int p =parent(i); if( p>
=0 &&comp(A[i], A[p]) ) { Exch(A[i], A[p]); heapify(p); } } int deleteTop(){ int del =-1; if( heapSize> -1) { del =A[0]; Exch(A[0], A[heapSize]); গাদা আকার--; heapify(অভিভাবক(heapSize+1)); } রিটার্ন ডেল; } bool insertHelper(int কী){ bool ret =মিথ্যা; যদি ( heapSize  

আউটপুট

যখন আপনি উপরের প্রোগ্রামটি কম্পাইল এবং এক্সিকিউট করেন। এটি নিম্নলিখিত আউটপুট −

তৈরি করে
ফলাফল:101520

  1. C++-এ পারমুটেশন II

  2. 4 যোগফল C++ এ

  3. C++ এ কাউন্টিং সর্ট ব্যবহার করে মিডিয়ান এবং মোড

  4. C++ এ static_cast