এটি আমার কাছে বোধগম্য নয় যে এটি যদি দুটি ডেটা পুরো ডেটা সেটটি নিয়ে কাজ করার অর্ধেকেরও কম কাজ করে তবে কোনও সমস্যার সমাধান করা দ্রুত হয়।
এটি বিভাজন এবং বিজয়ী অ্যালগরিদমের সারাংশ নয় । সাধারণত মুল বক্তব্যটি হ'ল আলগোরিদিমগুলি "সম্পূর্ণ ডেটা সেটটি মোকাবেলা করতে" পারে না। পরিবর্তে, এটি টুকরো টুকরো করে বিভক্ত করা হয়েছে যা সমাধানের জন্য তুচ্ছ (দুটি সংখ্যা বাছাই করার মতো), তারপরে এগুলি তুচ্ছভাবে সমাধান করা হয় এবং ফলাফলগুলি এমনভাবে পুনরায় সংযুক্ত হয় যা সম্পূর্ণ ডেটা সেটের জন্য সমাধান দেয়।
তবে কেন ডেটা সেটটি তিন ভাগে বিভক্ত করবেন না? চার? এন?
মূলত এটি দুটি অংশের বেশি বিভক্ত হওয়া এবং দুটিরও বেশি ফলাফল পুনরায় সমন্বিত করার ফলে আরও জটিল বাস্তবায়ন হয় তবে অ্যালগরিদমের মৌলিক (বিগ ও) বৈশিষ্ট্য পরিবর্তন হয় না - পার্থক্যটি একটি ধ্রুবক উপাদান, এবং মন্দা হতে পারে যদি 2 টিরও বেশি সাবসেটের বিভাগ এবং পুনঃসংযোগ অতিরিক্ত ওভারহেড তৈরি করে।
উদাহরণস্বরূপ, আপনি যদি একটি 3-উপায় সংহত সাজানোর কাজ করেন তবে পুনঃসংযোগের পর্যায়ে আপনাকে এখন প্রতিটি উপাদানের জন্য 3 টির মধ্যে সর্বাধিক সন্ধান করতে হবে, যার জন্য 1 এর পরিবর্তে 2 টি তুলনা প্রয়োজন, সুতরাং আপনি সামগ্রিক তুলনায় দ্বিগুণ করুন । বিনিময়ে, আপনি ln (2) / ln (3) == 0.63 এর একটি ফ্যাক্টর দ্বারা পুনরাবৃত্তির গভীরতা হ্রাস করেন, সুতরাং আপনার কাছে 37% কম অদলবদল রয়েছে, তবে 2 * 0.63 == 26% আরও তুলনা (এবং মেমরি অ্যাক্সেস) রয়েছে। এটি ভাল বা খারাপ তা নির্ভর করে যা আপনার হার্ডওয়্যারে বেশি ব্যয়বহুল।
আমি 3-উপায় কুইকোর্টের অনেকগুলি রেফারেন্সও দেখেছি। এটি কখন দ্রুত?
স্পষ্টতই কুইকোর্টের দ্বৈত পিভট রূপটি একই সংখ্যার তুলনায় প্রমাণিত হতে পারে তবে গড়ে 20% কম অদলবদল হয়, তাই এটি নেট লাভ।
অনুশীলনে কী ব্যবহৃত হয়?
আজকাল খুব সহজেই কেউ তাদের নিজস্ব বাছাই করা অ্যালগরিদমগুলি প্রোগ্রাম করে; তারা একটি লাইব্রেরির দ্বারা সরবরাহিত একটি ব্যবহার করে। উদাহরণস্বরূপ, জাভা 7 এপিআই প্রকৃতপক্ষে দ্বৈত-পিভট কুইকোর্ট ব্যবহার করে।
যে সমস্ত লোকেরা কিছু কারণে তাদের নিজস্ব বাছাই করা অ্যালগরিদমকে প্রোগ্রাম করেন তারা সাধারণ 2-উপায় বৈকল্পিকের সাথে লেগে থাকবেন কারণ ত্রুটিগুলির কম সম্ভাবনা বেশিরভাগ সময় 20% ভাল পারফরম্যান্স বীট করে। মনে রাখবেন: এখন পর্যন্ত সবচেয়ে গুরুত্বপূর্ণ পারফরম্যান্সের উন্নতি হ'ল কোডটি "কাজ না করে" থেকে "কাজ" করার দিকে চলে যায়।