সন্নিবেশ সাজানোর অ্যালগরিদমের একটি ভূমিকা

সন্নিবেশ সাজানোর অ্যালগরিদমের একটি ভূমিকা

সন্নিবেশ বাছাই একটি কৌশল যা একটি বাছাই করা সাবলিস্ট ব্যবহার করে কাজ করে এবং অবিরাম তালিকা থেকে ক্রমাগত একটি মান যোগ করে পুরো তালিকাটি সাজানো পর্যন্ত কাজ করে।





অ্যালগরিদম সাজানো সাবলিস্ট হিসাবে প্রথম তালিকা আইটেম দিয়ে শুরু হয়। এটি তারপর প্রথম সংখ্যাটির সাথে পরবর্তী সংখ্যাটির তুলনা করে। যদি এটি বেশি হয়, তাহলে এটি প্রথম সূচীতে োকানো হয়। অন্যথায়, এটি তার সূচকে রেখে যায়।





তৃতীয় মানটি তখন অন্য দুইটির সাথে তুলনা করা হয়, এবং তারপর সঠিক সূচীতে োকানো হয়। পুরো প্রক্রিয়াটি বাছাই না হওয়া পর্যন্ত এই প্রক্রিয়া চলে।





সন্নিবেশ বাছাই একটি ঘনিষ্ঠ চেহারা

উপরের বর্ণনাটি আপনার বোধগম্য নাও হতে পারে। একটি উদাহরণ আপনাকে আরও ভালভাবে বুঝতে সাহায্য করবে।

ধরুন আপনার একটি তালিকা আছে: [39, 6, 2, 51, 30, 42, 7]।



অ্যালগরিদম সাজানো সাবলিস্টের প্রথম মান হিসেবে 39 চিহ্নিত করে। মূল্যায়ন তারপর দ্বিতীয় অবস্থানে চলে যায়।

সম্পর্কিত: ডাইনামিক প্রোগ্রামিং: উদাহরণ, সাধারণ সমস্যা এবং সমাধান





6 এর পরে 39 এর সাথে তুলনা করা হয়। যেহেতু 6 টি 39 এর চেয়ে কম, প্রথম অবস্থানে 6 টি এবং দ্বিতীয়টিতে 39 টি সন্নিবেশ করা হয়। প্রথম পাসের পর এখন নতুন তালিকা অর্ডার হল:

[6, 39, 2, 51, 30, 42, 7]





মূল্যায়ন এখন তৃতীয় অবস্থানে চলে গেছে। 2 কে শেষ দুটি সংখ্যার সাথে তুলনা করা হয় এবং তারপর সঠিক অবস্থানে োকানো হয়। দ্বিতীয় পাসের পরে নতুন তালিকা অর্ডার হল:

[2, 6, 39, 51, 30, 42, 7]

তৃতীয় পাসের জন্য, তালিকা ক্রম হল:

[2, 6, 39, 51, 30, 42, 7]

পুরো তালিকাটি সাজানো না হওয়া পর্যন্ত প্রক্রিয়াটি পুনরাবৃত্তি হয়।

নীচের চিত্রটি দেখুন যা এই ক্রিয়াকলাপগুলি সংক্ষিপ্ত করে:

অ্যালগরিদম বিশ্লেষণ

সন্নিবেশ সাজানোর সময় জটিলতা হল O (n2), ঠিক যেমন বাবল বাছাই । সবচেয়ে খারাপ পরিস্থিতিতে তুলনার সংখ্যা হল 1 থেকে (n-1) পর্যন্ত সমস্ত পূর্ণসংখ্যার যোগফল, যা একটি চতুর্ভুজ যোগ করে।

কোড বাস্তবায়ন

নীচের পাইথন এবং জাভা কোড দেখায় যে আপনি কিভাবে সন্নিবেশ বাছাই পদ্ধতি প্রয়োগ করতে পারেন।

পাইথন:

def insertionSort(mylist):
for step in range(1, len(mylist)):
current_element = mylist[step]
position = step
while position > 0 and mylist[position - 1] > current_element:
mylist[position] = mylist[position - 1]
position = position - 1
mylist[position] = current_element

জাভা:

void insertionSort(int[] myarray) {
int n = myarray.length;
for (int x = 1; x int key = myarray[x];
int y = x-1;
while ( (y > -1) && ( myarray [y] > key ) ) {
myarray [y+1] = myarray [y];
y--;
}
myarray[y+1] = key;
}
}

সিউডোকোডের সাথে আরও ভাল কোডিং

উপরের কোডের উদাহরণগুলি কোন ছদ্দকোড ছাড়াই দেওয়া হয়েছিল যা আপনি অন্যান্য ভাষায় এই অ্যালগরিদম লিখতে উল্লেখ করতে পারেন। বেশিরভাগ প্রোগ্রামার (লেখক অন্তর্ভুক্ত) একটি প্রোগ্রাম কীভাবে কাজ করে সে সম্পর্কে 'ফিসফিস' বলা হওয়ার পরে তাদের কীবোর্ডগুলিতে দৌড়াতে পছন্দ করে।

এই পদ্ধতিটি দুর্ভাগ্যবশত ত্রুটির প্রবণ কারণ প্রোগ্রাম লজিক আরো জটিল হয়ে যায়। সিউডোকোড কীভাবে ব্যবহার করবেন তা শিখে আপনি কীভাবে আপনার প্রোগ্রামিং গেমটিকে সমতল করতে চান?

শেয়ার করুন শেয়ার করুন টুইট ইমেইল সিউডোকোড কী এবং এটি আপনাকে কীভাবে আরও ভাল বিকাশকারী করে তোলে?

প্রোগ্রামিং শেখার জন্য সংগ্রাম করছেন? সিউডোকোড শেখার মাধ্যমে কোডের সাথে ধরুন। কিন্তু সিউডোকোড কি এবং এটি কি সত্যিই সাহায্য করতে পারে?

পরবর্তী পড়ুন
সম্পর্কিত বিষয়
  • প্রোগ্রামিং
  • জাভা
  • পাইথন
  • কোডিং টিউটোরিয়াল
লেখক সম্পর্কে জেরোম ডেভিডসন(22 নিবন্ধ প্রকাশিত)

জেরোম MakeUseOf এর একজন স্টাফ রাইটার। তিনি প্রোগ্রামিং এবং লিনাক্স সম্পর্কিত নিবন্ধগুলি জুড়েছেন। তিনি একজন ক্রিপ্টো উত্সাহী এবং সর্বদা ক্রিপ্টো শিল্পের উপর নজর রাখেন।

কিভাবে গুগল প্লে থেকে গান ডাউনলোড করতে হয়
জেরোম ডেভিডসন থেকে আরো

আমাদের নিউজলেটার সদস্যতা

প্রযুক্তি টিপস, রিভিউ, ফ্রি ইবুক এবং এক্সক্লুসিভ ডিলের জন্য আমাদের নিউজলেটারে যোগ দিন!

সাবস্ক্রাইব করতে এখানে ক্লিক করুন