আপনি যদি পিভট হিসাবে কোনও সর্বাধিক উপাদান চয়ন করেন তবে কুইকসোর্টের সর্বদা চতুর রানটাইম থাকে?


9

আপনার যদি দ্রুত সাজানোর অ্যালগরিদম থাকে এবং আপনি সর্বদা আপনার পিভট হিসাবে সবচেয়ে ছোট (বা বৃহত্তম) উপাদানটি নির্বাচন করেন; আমি কি ঠিক ধরে নিচ্ছি যে আপনি যদি ইতিমধ্যে সাজানো ডেটা সেট সরবরাহ করেন তবে আপনার 'ইতিমধ্যে সাজানো' তালিকাটি উতরাই বা অবতরণী ক্রমে রয়েছে তা নির্বিশেষে আপনি সর্বদা সবচেয়ে খারাপের পারফরম্যান্স পাবেন?

আমার চিন্তাভাবনাটি হ'ল, যদি আপনি সর্বদা আপনার পাইভটের জন্য ক্ষুদ্রতম উপাদানটি চয়ন করেন, তবে আপনার 'ইতিমধ্যে সাজানো' ইনপুটটি আরোহণ বা উত্থানের দ্বারা সাজানো হয়েছে কিনা তা বিবেচনাধীন নয় কারণ আপনার পাইভটের তুলনায় বাছাই করা সাবসেটটি সর্বদা হবে একই আকার?


2
আপনার চিন্তাভাবনা সঠিক, তবে আপনি সরাসরি তর্ক করতে এবং এই ক্ষেত্রে কুইকোর্টের চলমান সময় গণনা করতে পারেন - আপনি O(n2)
যুবাল ফিল্মাস

উত্তর:


15

কুইকোর্টের জন্য সবচেয়ে খারাপ ক্ষেত্রে জটিলতা হ'ল । পাইভটগুলি বাছাইয়ের মাধ্যমে এটি অর্জন করা যায় যা সেটগুলিকে এইভাবে ভাগ করে দেয় যে একটি গোষ্ঠীতে কেবলমাত্র একক সদস্য রয়েছে। একটি খারাপ পাইভট বাছাই অ্যালগরিদম দিয়ে, এটি একটি সাজানো সেটের এক প্রান্তটি বাছাই করে সহজেই অর্জন করা যায়। আপনার অনুমানটি সঠিক।Θ(n2)


2
এটি লেখার চেয়ে আরও ভাল ছিল: "... এটি এমন একটি পাইভকে বাছাই করে অর্জন করা হয়েছে যা সেটকে ভাগ করে দেয় যে কোনও একটি গ্রুপের কেবল ও (1) সদস্য রয়েছে"

@ সাeedদ আমিরি: এটা ঠিক, তবে সুনির্দিষ্ট হওয়া ভাল।
এমএমএস

1
@ সাইদআমিরি: ও (1) নির্দেশ করে যে এটি 1 এর সমানুপাতিক, যার অর্থ এটি কে * 1 হতে পারে। প্রকৃত নিকৃষ্ট পরিস্থিতিটি হ'ল যখন এটি ঠিক 1 হয় achieved আমি আপনাকে মঞ্জুরি দেব যে হে (1) এখনও ও (N ^ 2) এর দিকে পরিচালিত করতে পারে।
ওয়ালারি

@MMS, আমি লিখেছি ভালো হবে, walrii আপনি লিখেছিলেন: "quicksort জন্য সবচেয়ে খারাপ ক্ষেত্রে জটিলতা , কিন্তু আসলে একমাত্র উপায় অর্জনে .." আপনি যেভাবে বলেছেন তা নয়, হ্যাঁ আপনি যেভাবে বর্ণনা করেছেন তা মোটে সবচেয়ে খারাপ ঘটনা, তবে একমাত্র । O(1)Θ(n2)Θ(n2)Θ(n2)

5

হ্যাঁ! আপনি ভাবছেন একেবারে ঠিক! এবং যুবাল ফিল্মাস সঠিকভাবে উল্লেখ করেছেন, চলমান সময়টি হবে Θ(n2)


3

একটি সুবরেতে বা উপাদান থাকবে অন্যটিতে উপাদান থাকবে; সুতরাং এটি : 01(n1)O(n2)

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