বাছাই করা 2-মাত্রিক অ্যারেটির কোনও অর্থ রাখে না ... বা এটি?
আপনার কাজটি হ'ল একটি ইনপুট গ্রিড নেওয়া এবং এটিতে বুদ্বুদ-সাজানোর মতো অ্যালগরিদম প্রয়োগ করা যতক্ষণ না গ্রিডের সমস্ত মান প্রতিটি সারি এবং কলামে বাম থেকে ডান এবং নীচে থেকে কমতে থাকে।
অ্যালগরিদম নিম্নলিখিত হিসাবে কাজ করে:
- প্রতিটি পাস তার ডান এবং নীচে প্রতিবেশীদের সাথে প্রতিটি সেলকে তুলনা / অদলবদল করে, শীর্ষ থেকে নীচে, প্রতিটি সারি একের পর এক সারিতে যায়।
- যদি ঘরটি তার ডান এবং নীচে থাকা প্রতিবেশীদের মধ্যে কেবল একটির চেয়ে বেশি হয় তবে তার চেয়ে বড়টি তার সাথে বদলে ap
- যদি ঘরটি তার ডান এবং নীচের উভয় প্রতিবেশীর চেয়ে বড় হয় তবে ছোট প্রতিবেশীর সাথে অদলবদল করুন
- যদি ঘরটি তার ডান এবং নীচের প্রতিবেশী উভয়ের চেয়ে বেশি হয় যা একই মান, তবে নীচের প্রতিবেশীর সাথে অদলবদল করুন।
- যদি ঘরটি তার ডান এবং নীচের প্রতিবেশীদের উভয়ের চেয়ে বড় না হয় তবে কিছুই করবেন না
- পুরো পাস জুড়ে কোনও অদলবদল না হওয়া অবধি এটি চালিয়ে যান। প্রতিটি সারি এবং কলামটি বাম থেকে ডান এবং নীচে থেকে নীচে ক্রমে থাকে এমনটি হবে।
উদাহরণ
4 2 1
3 3 5
7 2 1
পাসের প্রথম সারিতে 4 এবং 2 অদলবদল করবে, তারপরে 1 দিয়ে 4।
2 1 4
3 3 5
7 2 1
যখন আমরা মাঝারিটি 3 পেয়ে যাব, এটি নীচের 2 এর সাথে সজ্জিত হবে
2 1 4
3 2 5
7 3 1
তারপরে 5 টি নীচে 1 দিয়ে অদলবদল হবে
2 1 4
3 2 1
7 3 5
প্রথম পাসের শেষ সারিটি 7 টি ডানদিকে সরায়
2 1 4
3 2 1
3 5 7
তারপরে আমরা আবার শীর্ষ সারিতে ফিরে যাই
1 2 1
3 2 4
3 5 7
এবং একের পর এক সারিতে চালিয়ে যান ...
1 2 1
2 3 4
3 5 7
... গ্রিডটি "বাছাই করা" হওয়া পর্যন্ত
1 1 2
2 3 4
3 5 7
আরেকটি উদাহরণ
3 1 1
1 1 1
1 8 9
হয়ে
1 1 1
1 1 1
3 8 9
বরং
1 1 1
1 1 3
1 8 9
কারণ নীচের দিকে অদলবদল অগ্রাধিকার নেয় যখন কোনও ঘরের ডান এবং নীচে প্রতিবেশী উভয়ই সমান হয়।
একটি ধাপে ধাপে রেফারেন্স বাস্তবায়ন এখানে পাওয়া যাবে ।
পরীক্ষার মামলা
5 3 2 6 7 3 1 0
3 2 1 9 9 8 3 0
3 2 2 8 9 8 7 6
হয়ে
0 0 1 1 2 2 3 6
2 2 3 3 6 7 8 8
3 3 5 7 8 9 9 9
2 1 2 7 8 2 1 0
2 2 2 2 3 2 1 0
1 2 3 4 5 4 3 2
9 8 7 6 5 4 3 6
6 5 4 3 2 2 1 0
হয়ে
0 0 0 1 1 1 2 2
1 1 2 2 2 2 2 2
2 2 2 2 3 3 3 3
3 4 4 4 4 5 6 6
5 5 6 7 7 8 8 9
বিধি
- আপনি যে কোনও সুবিধাজনক বিন্যাসে ইনপুট গ্রিড নিতে পারেন
- আপনি গ্রিডের মানগুলি স্বাক্ষরযুক্ত 16-বিট পরিসরে (0-65535) সমস্ত অ-নেতিবাচক পূর্ণসংখ্যার হিসাবে ধরে নিতে পারেন।
- আপনি ধরে নিতে পারেন গ্রিডটি একটি নিখুঁত আয়তক্ষেত্র এবং জাগড অ্যারে নয়। গ্রিডটি কমপক্ষে 2x2 হবে।
- আপনি যদি বাছাইয়ের অন্য একটি অ্যালগরিদম ব্যবহার করেন তবে আপনাকে অবশ্যই একটি প্রমাণ সরবরাহ করতে হবে যে এটি সর্বদা 2D বুদ্বুদ বাছাইয়ের এই বিশেষ ব্র্যান্ডের মতো একই ফলস্বরূপ অর্ডার তৈরি করবে , ইনপুটটি যাই হোক না কেন। আমি এটি একটি তুচ্ছ প্রমাণ হিসাবে প্রত্যাশা করব, তাই আপনি সম্ভবত বর্ণিত অ্যালগরিদম ব্যবহার করে আরও ভাল।
শুভ গল্ফিং!