হয় প্রদত্ত দুই সাজানো অ্যারে একটি , খ ধরনের টি আকার সঙ্গে এন এবং মি । আমি একটি অ্যালগরিদম খুঁজছি যা দুটি অ্যারেটিকে একটি নতুন অ্যারে (সর্বাধিক আকারের এন + মি) এর সাথে একীভূত করে।
আপনার যদি সস্তা তুলনা অপারেশন হয় তবে এটি বেশ সহজ। এক বা উভয় অ্যারে সম্পূর্ণরূপে বিপরীত না হওয়া অবধি কেবল সর্বনিম্ন প্রথম এলিমেন্টের সাথে অ্যারে থেকে নিন, তারপরে অবশিষ্ট উপাদানগুলি যুক্ত করুন। এর মতো কিছু /programming/
যাইহোক, দুটি উপাদানের তুলনা করে পরিস্থিতি পরিবর্তিত হয় যখন উত্স অ্যারে থেকে লক্ষ্য অ্যারেতে কোনও উপাদান অনুলিপি করার চেয়ে অনেক বেশি ব্যয়বহুল । উদাহরণস্বরূপ আপনার কাছে বড় স্বেচ্ছাচারিত নির্ভুলতা পূর্ণসংখ্যা বা স্ট্রিংগুলির অ্যারে থাকতে পারে, যেখানে তুলনা করা বেশ ব্যয়বহুল হতে পারে। কেবল ধরে নিন যে অ্যারে তৈরি করা এবং উপাদানগুলি অনুলিপি করা নিখরচায় এবং উপাদানগুলির সাথে তুলনা করা একমাত্র জিনিস costs
এই ক্ষেত্রে, আপনি দুটি অ্যারেটিকে ন্যূনতম সংখ্যার উপাদান তুলনার সাথে একত্রী করতে চান । এখানে কয়েকটি উদাহরণ রয়েছে যেখানে সাধারণ মার্জ অ্যালগরিদমের চেয়ে আপনার আরও ভাল করতে সক্ষম হওয়া উচিত:
a = [1,2,3,4, ... 1000]
b = [1001,1002,1003,1004, ... 2000]
অথবা
a = [1,2,3,4, ... 1000]
b = [0,100,200, ... 1000]
কিছু ক্ষেত্রে রয়েছে যেখানে সরল মার্জ অ্যালগরিদম অনুকূল হবে, যেমন
a = [1,3,5,7,9,....,999]
b = [2,4,6,8,10,....,1000]
সুতরাং অ্যালগোরিদমটি আদর্শভাবে করুণভাবে হ্রাস করতে হবে এবং অ্যারেগুলি আন্তঃবাহিত অবস্থায় থাকলে বা কমপক্ষে উল্লেখযোগ্যভাবে খারাপ না হওয়ার ক্ষেত্রে সর্বাধিক এন + এম -1 তুলনা করা উচিত।
একটি বৃহত আকারের পার্থক্য সহ তালিকাগুলির জন্য বেশ ভালভাবে কাজ করা উচিত হ'ল ছোট অ্যারের উপাদানগুলি বড় অ্যারেতে intoোকানোর জন্য বাইনারি অনুসন্ধান ব্যবহার করা। তবে উভয় তালিকাগুলি একই আকারের এবং ইন্টারলিভডের ক্ষেত্রে এটি কৌতূহলজনকভাবে হ্রাস পাবে না।
উপাদানগুলির জন্য একমাত্র উপলভ্য হ'ল একটি (মোট) আদেশ ক্রিয়াকলাপ, সুতরাং তুলনামূলক সস্তা তুলনামূলক সস্তা যে কোনও পরিকল্পনা সম্ভব নয়।
কোন ধারনা?
আমি এই বিট নিয়ে এসেছি স্কালায় । আমি বিশ্বাস করি যে তুলনা সংখ্যার ক্ষেত্রে এটি সর্বোত্তম, তবে এটি প্রমাণ করার মতো আমার ক্ষমতা ছাড়িয়ে এটি। সাহিত্যে আমি যে জিনিসগুলি পেয়েছি তার চেয়ে কমপক্ষে এটি অনেক সহজ।
এবং মূল পোস্টিংয়ের পর থেকে, আমি কীভাবে এটি কাজ করে সে সম্পর্কে একটি ব্লগ পোস্ট লিখেছিলাম ।