নির্বাচন অ্যালগরিদমের জন্য স্থানে আবদ্ধ?


11

পূর্ণসংখ্যার অ্যারেতে সবচেয়ে বড় উপাদানটি খুঁজে পেতে একটি সুপরিচিত সবচেয়ে খারাপ ক্ষেত্রে নির্বাচন অ্যালগরিদম রয়েছে । এটি ব্যবহার করে একটি মধ্যমা অফ মধ্যমা একটি ভাল যথেষ্ট পিভট এটি কাছে, পার্টিশন জায়গায় ইনপুট অ্যারের এবং তারপর যাও recursively জন্য এটি এর অনুসন্ধান অব্যাহত 'ম বৃহত্তম উপাদান।O(n) kk

কি হবে যদি আমরা ইনপুট অ্যারের, কত অতিরিক্ত স্থান অর্ডার এটি প্রয়োজন হবে স্পর্শ দেওয়ার অনুমতি দেওয়া হয়নি 'থেকে তম বৃহত্তম উপাদান সময়? আমরা কি অতিরিক্ত স্থানের ও এর সবচেয়ে বড় উপাদানটি খুঁজে পেতে এবং রানটাইম রাখতে পারি? উদাহরণস্বরূপ, সর্বাধিক বা ন্যূনতম উপাদান সন্ধান করতে সময় এবং স্থান লাগে । kO(n)kO(1)O(n)O(n)O(1)

স্বজ্ঞাতভাবে, আমি ভাবতে পারি না যে আমরা স্থানের চেয়ে আরও ভাল করতে পারি তবে এর কোনও প্রমাণ আছে কি?O(n)

'th এলিমেন্টের জন্য সময়ে কেন স্থানের প্রয়োজন হবে এমন কোনও যুক্তি উল্লেখ করতে বা তর্ক করতে পারে ?n/2O(n)O(n)


2
আমি কোনও বিশেষজ্ঞ নই তবে সম্ভবত এই কাগজপত্রগুলি সহায়ক: নির্বাচন এবং স্থান-সময় ব্যবসায়ের
ভোর

উত্তর:


13

এটা তোলে যদি আপনার সাথে নির্বাচন করতে পারবেন একটি খোলা সমস্যা সময় এবং ইনপুট (দেখুন পরিবর্তন না করে অতিরিক্ত মেমরি কোষ এখানে )। তবে আপনি এটি খুব কাছাকাছি আসতে পারেন।O(n)O(1)

মুনরো এবং রমন নির্বাচনের জন্য একটি অ্যালগরিদম প্রস্তাব করেছিলেন যা কেবল অতিরিক্ত স্টোরেজ (কোষ) ব্যবহার করার সময় সময়ে সঞ্চালিত হয় । এই অ্যালগরিদম ইনপুটটি অপরিবর্তিত রেখে দেয়। আপনি যে কোনও ছোট বেছে নিতে পারেন ।O(n1+ε)O(1/ε)ε>0

এর মূল অংশে, মুনরো এবং রামানের অ্যালগোরিদমটি ক্লাসিকাল অ্যালগোরিদম হিসাবে কাজ করে : এটি একটি বাম এবং ডানদিকের আবদ্ধ (যা ফিল্টার নামে পরিচিত ) বজায় রাখে , যা পরিচিত পদযুক্ত দুটি উপাদান। অনুরোধকৃত উপাদানটি দুটি ফিল্টার (র‌্যাঙ্ক-ওয়াইজ) এর মধ্যে রয়েছে। একটি ভাল পাইভট উপাদান আমরা ফিল্টারগুলি এবং বিপরীতে সমস্ত সংখ্যা পরীক্ষা করতে পারি । এটি ফিল্টারগুলি আপডেট করা সম্ভব করে এবং চেক করার জন্য অবশিষ্ট পদার্থের সংখ্যা হ্রাস করে (র‌্যাঙ্ক-ওয়াইজ)। আমরা অনুরোধের উপাদান না পাওয়া পর্যন্ত পুনরাবৃত্তি করি।O(n)pp

ধ্রুপদী অ্যালগরিদমের চেয়ে আলাদা যা পছন্দ । যাক জন্য অ্যালগরিদম যে সমাধান নির্বাচন হতে । অ্যালগোরিদম সমান আকারের ব্লকে অ্যারে ভাগ করে এবং এমন একটি ব্লক চিহ্নিত করে যেখানে অনেক উপাদান রয়েছে, যার র‌্যাঙ্কগুলি ফিল্টারগুলির মধ্যে রয়েছে (কবুতর-গর্ত নীতি দ্বারা অস্তিত্ব)। এই ব্লকটি তখন অ্যালগোরিদম সাহায্যে একটি ভাল পাইভট উপাদানটির জন্য স্ক্যান করা হবে । পুনরাবৃত্তি অ্যাঙ্করটি তুচ্ছ অ্যালগরিদম। ডান ব্লকের আকার (এবং গণিতে করছেন) আপনাকে উপরে বর্ণিত সময় এবং স্থানের প্রয়োজনীয়তার প্রয়োজন দেয়।pA(k)ε=1/kA(k)A(k1)A(1)

বিটিডব্লিউ, আপনি যে অ্যালগরিদমগুলি সন্ধান করছেন, তাদের নাম সম্প্রতি ধ্রুবক-কার্য-স্থান অ্যালগরিদম হয়েছে

আমি কোন নিম্ন সীমা সম্পর্কে অবগত নই।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.