ধরে নেওয়া হ'ল k স্থির হয়েছে (যেমন উভয় সংযুক্ত বক্তৃতা রয়েছে), তারপরে আপনার অ্যালগরিদমিক পছন্দগুলি নির্ধারণ করবে যে আপনার গণনা O(nd+kn) রানটাইম বা O(ndk) রানটাইম নেয় কিনা ।
প্রথমে আসুন একটি O(nd+kn) রানটাইম অ্যালগরিদম বিবেচনা করুন:
- আরম্ভ selectedi=0 সব পর্যবেক্ষণের জন্য i ট্রেনিং সেটে এমন সব
- প্রতিটি প্রশিক্ষণ সেট পর্যবেক্ষণ , গণনা d i s t i এর জন্য , নতুন পর্যবেক্ষণ থেকে প্রশিক্ষণের সেট পর্যবেক্ষণের দূরত্ব iidistii
- জন্য থেকে k : লুপ সব ট্রেনিং সেট পর্যবেক্ষণ মাধ্যমে সূচক নির্বাচন আমি ক্ষুদ্রতম সঙ্গে ঘ আমি গুলি টন আমি মান এবং যার জন্য গুলি ই ঠ ই গ টি ই ঘ আমি = 0 । S e l e c t e d i = 1 সেট করে এই পর্যবেক্ষণটি নির্বাচন করুন ।j=1kidistiselectedi=0selectedi=1
- নির্বাচিত সূচকগুলি ফেরত দিনk
প্রতিটি দূরত্বের গণনার জন্য রানটাইম প্রয়োজন হয়, সুতরাং দ্বিতীয় ধাপে ও ( এন ডি ) রানটাইম প্রয়োজন। তৃতীয় ধাপে প্রতিটি পুনরাবৃত্তির জন্য, আমরা প্রশিক্ষণ সেট পর্যবেক্ষণগুলি লুপ করে ও ( এন ) কাজটি সম্পাদন করি , সুতরাং সামগ্রিক পদক্ষেপে ও ( এন কে ) এর কাজ প্রয়োজন। প্রথম এবং চতুর্থ পদক্ষেপে কেবল ও ( এন ) এর কাজ প্রয়োজন, সুতরাং আমরা একটি ও ( এন ডি + কে এন ) রানটাইম পাই ।O(d)O(nd)O(n)O(nk)O(n)O(nd+kn)
এখন, আসুন একটি রানটাইম অ্যালগরিদম বিবেচনা করুন:O(ndk)
- আরম্ভ সব পর্যবেক্ষণের জন্য আমি ট্রেনিং সেটে এমন সবselectedi=0i
- জন্য থেকে k : লুপ সব ট্রেনিং সেট পর্যবেক্ষণ দিয়ে গনা দূরত্ব ঘ নির্বাচিত ট্রেনিং সেট পর্যবেক্ষণ করুন এবং নতুন পর্যবেক্ষণ মধ্যে। সূচক নির্বাচন করুন আমি ক্ষুদ্রতম সঙ্গে ঘ যে মানের জন্য গুলি ই ঠ ই গ টি ই ঘ আমি = 0 । S e l e c t e d i = 1 সেট করে এই পর্যবেক্ষণটি নির্বাচন করুন ।j=1kdidselectedi=0selectedi=1
- নির্বাচিত সূচকগুলি ফেরত দিনk
দ্বিতীয় ধাপে প্রতিটি পুনরাবৃত্তির জন্য, আমরা নতুন পর্যবেক্ষণ এবং প্রতিটি প্রশিক্ষণ সেট পর্যবেক্ষণের মধ্যে দূরত্ব গণনা করি, যা পুনরাবৃত্তির জন্য কাজ প্রয়োজন এবং সুতরাং সামগ্রিকভাবে ও ( এন ডি কে ) কাজ করে।O(nd)O(ndk)
দুটি অ্যালগরিদমের মধ্যে পার্থক্যটি হ'ল প্রথম সংস্থান এবং দূরত্বগুলি সংরক্ষণ করে ( অতিরিক্ত মেমরির প্রয়োজন হয়), তবে দ্বিতীয়টি তা করে না। যাইহোক, প্রদত্ত যে আমরা ইতিমধ্যে সমগ্র ট্রেনিং সেট সংরক্ষণ প্রয়োজন হে ( ঢ ঘ ) মেমরি, এবং সেইসাথে গুলি ই ঠ ই গ টি ই ঘ ভেক্টর, প্রয়োজন হে ( ঢ ) স্টোরেজ, দুই আলগোরিদিম স্টোরেজ এসিম্পটোটিকভাবে হয় একই। ফলস্বরূপ, কে > 1 এর জন্য আরও ভাল অ্যাসেম্পটোটিক রানটাইম প্রথম অ্যালগরিদমকে আরও আকর্ষণীয় করে তোলে।O(n)O(nd)selectedO(n)k>1
এটি লক্ষণীয় যে অ্যালগোরিদমিক উন্নতি ব্যবহার করে একটি রানটাইম পাওয়া সম্ভব :O(nd)
- প্রতিটি প্রশিক্ষণ সেট পর্যবেক্ষণ , গণনা d i s t i এর জন্য , নতুন পর্যবেক্ষণ থেকে প্রশিক্ষণের সেট পর্যবেক্ষণের দূরত্ব iidistii
- ও ( এন ) রানটাইমের মধ্যে কে টি এইচ ছোটতম দূরত্ব গণনা করার জন্য কুইকসিলিট অ্যালগরিদম চালানkthO(n)
- সমস্ত সূচকগুলি গণনা করা ছোটতম দূরত্বে আর বড় নয়kth
এই পদ্ধতির অকার্যকর অ্যারে সবচেয়ে ক্ষুদ্রতম মান সন্ধানের জন্য দক্ষ পদ্ধতির উপস্থিতি এই সত্যটির সুযোগ নেয় ।kth
quickselect
।