ইনট্রোসোর্ট কেন মার্জোর্টের চেয়ে হিপসোর্ট ব্যবহার করে?


9

বাস্তবায়ন আচ্ছাদন একটি হোমওয়ার্ক নিয়োগ অংশ হিসেবে introsort আমি জিজ্ঞাসা করছি কেন heapsort mergesort (অথবা অন্যান্য বদলে ব্যবহার করা হয় যে বিষয়টি জন্য আলগোরিদিম)। O(nlog(n))

ইন্ট্রোসর্ট একটি হাইব্রিড বাছাই অ্যালগরিদম যা দ্রুত গড় পারফরম্যান্স এবং (অ্যাসিপটোটিক্যালি) সর্বোত্তমতম ক্ষেত্রে-কর্মক্ষমতা উভয়ই সরবরাহ করে। এটি কুইকোর্টের সাথে শুরু হয় এবং হিপসোর্টে স্যুইচ করা হয় যখন পুনরাবৃত্তির গভীরতা একটি স্তরকে ছাড়িয়ে যায় (এর লোগারিদম) যে পরিমাণ উপাদান বাছাই করা হচ্ছে তার ভিত্তিতে। ( উইকিপিডিয়া , 2014-মে-06-এ পুনরুদ্ধার করা হয়েছে))

একমাত্র কারণ আমি ভাবতে পারি যে হিপসোর্টটি "স্থানে" ... তবে টিবিএইচ আমি কেন বুঝতে পারি না কেন এটি এখানে গুরুত্বপূর্ণ হবে।


3
ইনট্রোসোর্ট যদি প্রশ্নের অংশ হয় তবে আমাদের কিছু বলার আগে আপনাকে তা আমাদের বলতে হবে।
লুই

1
কম্পিউটার বিজ্ঞানে স্বাগতম ! নোট করুন যে আপনি আরও পাঠযোগ্য উপায়ে গণিতকে টাইপসেট করতে এখানে ল্যাটেক্স ব্যবহার করতে পারেন। একটি সংক্ষিপ্ত পরিচিতির জন্য এখানে দেখুন ।
ফ্র্যাঙ্কডব্লিউ 6:48

আমাদের কেবল ইন্ট্রো সাজানোর জন্য কিছু সিউডো কোড তৈরি করতে বলা হয় এবং পরে আমাদের জিজ্ঞাসা করা হয় কেন এটি মার্জর্টের পরিবর্তে হিপসোর্ট ব্যবহার করে।
ব্যবহারকারী 672009

@ user672009 সেক্ষেত্রে যে কোনও একটির জন্য কোড লিখুন এবং আপনার সন্ধানটি দেখুন। কারণটি পারফরম্যান্সের সাথে সম্পর্কিত বা নাও থাকতে পারে।
রাফেল

2
আমি উপসংহারে পৌঁছেছি যেহেতু কুইকোর্টের প্রকারের প্রকারে বাছাই করা যায় তাই আমাদের অন্য জায়গায় জায়গা বাছাই করা অ্যালগরিদম ব্যবহার করতে হবে। তবে আমি ইনপুট জন্য খোলা।
ব্যবহারকারী 672009

উত্তর:


9

কুইকোর্টের 2 টি ডাউনসাইড হ'ল এটির জন্য অতিরিক্ত স্থানের প্রয়োজন হয় (ছদ্মবেশিত অন্তরগুলি রাখতে) এবং খারাপ পিভট নির্বাচন (বা আপনাকে একটি খারাপ পাইভট নির্বাচন করতে নকশাকৃত অনুক্রমযুক্ত) এটি ) হতে পারে সময় এবং অতিরিক্ত স্থান অ্যালগরিদম।O(logn)O(n2)O(n)

পুনরাবৃত্তির গভীরতা যখন খুব বড় হয়ে যায় তখন হিপসোর্টে স্যুইচ করা (প্রায় ) এর অর্থ হল আমাদের একটি গ্যারান্টিযুক্ত উপরের বাউন্ড রয়েছে যা সময় এবং অতিরিক্ত স্থান।lognO(nlogn)O(logn)

হিপসোর্টের অতিরিক্ত স্থানের প্রয়োজনীয়তা এটি মার্গার্সোর্টের এর পক্ষে আরও ভাল পছন্দ করে যেখানে একটি স্বীকৃত অ্যারে যেখানে এখনও বড় হতে পারে।O(1)O(n)n

পুরো ধরণের জন্য হিপসোর্টটি ব্যবহার না করার কারণ হ'ল এটি কুইকোর্টের চেয়ে ধীরে ধীরে (কিছুটা বড় হে এক্সপ্রেশনে লুকানো ধ্রুবক এবং কিছু অংশে ক্যাশে আচরণের কারণে)


তবে হিপসোর্টটি ব্যবহার করা হয় ... এবং আমার সন্দেহ হয় যে এটি চিকুইসোর্টের মতো জায়গায়।
ব্যবহারকারী 672009

আমি সন্দেহ করি যে @ user672009 আপনার শেষ বাক্যটি দ্বারা বিভ্রান্ত। আমি স্পষ্ট করে বলতে চাই যে অন্তর্মুখীটি হিপসোর্টের সাথে শুরু হয় না কারণ এটি ধীর।
লজিকের বিচরণ

@ ব্যবহারকারী 672009, স্থান অর্থ "স্থানে", এবং কুইকোর্টটি বেশিরভাগ জায়গায় নেই কারণ এর জন্য অতিরিক্ত স্থান প্রয়োজন। O(1)O(lgn)
যুক্তি

অতিরিক্তভাবে, হিপসোর্টে ইনট্রসোর্টের চেয়ে অনেক বেশি ক্যাশে মিস হয়।
noɥʇʎԀʎzɐɹƆ

একটি ভাল কুইকসোর্ট বাস্তবায়নের জন্য সবচেয়ে খারাপ ক্ষেত্রে ও (এন) স্পেসের প্রয়োজন হবে না, যতক্ষণ না এটি স্ট্যাকের বৃহত সাবিনটারওয়ালটি মনে থাকে এবং ততক্ষণে ছোটটি পরিচালনা করে।
gnasher729
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.