সন্নিবেশ বাছাই
এটি একটি অ্যারে সাজানোর জন্য একটি খুব সহজ তুলনা সাজানোর. একটি তুলনা বাছাই বর্তমান মানটিকে তুলনা করে যা আমরা অ্যারের অন্যান্য মানের সাথে সাজানোর চেষ্টা করছি। এটি একটি সময়ে একটি আইটেমের সাথে কাজ করে এবং প্রতিটি আইটেমকে পুনরাবৃত্তভাবে সঠিক জায়গায় রাখে যাতে একটি প্রয়োজনীয় সাজানো অ্যারে পাওয়া যায়।
আসলে, সন্নিবেশ সাজানো কিছু উন্নত অ্যালগরিদমের মতো দক্ষ নয় যেমন হিপ সর্ট অথবা মার্জ করুন . বড় প্রোগ্রামগুলির সাথে ডিল করার সময় এটি একটি সেরা বিকল্প নয়। এর কম লুকানো ধ্রুবক মান এর কারণে , ছোট অ্যারে নিয়ে কাজ করার সময় একটি সন্নিবেশ বাছাই কিছু উন্নত অ্যালগরিদমকে ছাড়িয়ে যায় যেমন হিপ বা দ্রুত সাজানোর .
সন্নিবেশ বাছাই একটি অ্যারের উপর বাম থেকে ডানে সরানোর মাধ্যমে কাজ করে। এটি বর্তমান আইটেম ব্যবহার করবে৷ একটি 'কী' হিসাবে এবং সেই কীটির বাম দিকে একটি মান অনুসন্ধান করে এমন একটি অবস্থান খুঁজে বের করতে যেখানে কীটি আসলে থাকা উচিত৷
অ্যালগরিদম
নিম্নলিখিত উদাহরণে দেওয়া অ্যারে হল 0,-3,5,8,2,7,6
- পুনরাবৃত্তি 0 - প্রথম পুনরাবৃত্তিতে আমাদের কাছে শুধুমাত্র 0,-3,5,8,2,7,6 প্রকৃত সাজানো বিন্যাস রয়েছে৷
- পুনরাবৃত্তি 1 - এই পুনরাবৃত্তিতে কীটি সূচক 1-এ একটি মান যা -3। সন্নিবেশ বাছাই কীটির বাম দিকের মানগুলির সাথে কীটির তুলনা করে এবং প্রক্রিয়াটি এগিয়ে নিয়ে যায়। যেহেতু -3 0 এর থেকে কম, এটি 0 এর বাম দিকে চলে যায় -3,0,5,8,2,7,6 হিসাবে অ্যারে দিয়ে।
- পুনরাবৃত্তি 2 - এখানে কীটি হল 5 (সূচক 2 এ মান)। এটির বাম দিকের মানগুলির সাথে তুলনা করা হবে যা -3 এবং 0, এবং এটির সাজানো মানটিতে স্থাপন করা হবে। সুতরাং পুনরাবৃত্তি 2 এর পরে অ্যারে হল -3,0,5,8,2,7,6৷
- পুনরাবৃত্তি 3 - এই পুনরাবৃত্তিতে কী মান 8 এর বাম দিকের উপাদানগুলির সাথে তুলনা করা হবে এবং চূড়ান্ত অ্যারে হবে -3,0,5,8,2,7,6।
- পুনরাবৃত্তি 4 - এই পুনরাবৃত্তিতে কী মান 2 এর বাম দিকের মানের সাথে তুলনা করা হয় এবং এটির সাজানো অবস্থানে স্থাপন করা হয়। সুতরাং পুনরাবৃত্তি 4 এর পরে চূড়ান্ত অ্যারে হল -3,0,2,5,8,7,6৷
একইভাবে, চূড়ান্ত পুনরাবৃত্তির শেষে সাজানো অ্যারে হবে -3,0,2,5,6,7,8
উদাহরণ
<html> <head> <script> function iSort(array) { for (var p = 1; p < array.length; p++) { if (array[p] < array[0]){ array.unshift(array.splice(p,1)[0]); } else if (array[p] > array[p-1]){ continue; } else { for (var q = 1; q < p; q++) { if (array[p] > array[q-1] && array[p] < array[q]){ array.splice(q,0,array.splice(p,1)[0]); } } } } return array; } document.write(iSort([0,-3,5,8,2,7,6])); </script> </body> </html>
আউটপুট
-3,0,2,5,6,7,8