শেষের if(swap==0){break;} condition টা কিভাবে কাজ করে তা জানালে খুবই উপকৃত হব।

for(i=0; i<n-1; i++)
{
    int swap=0;               
    for(j=0; j<n-i-1; j++)
    {
        if( array[j] > array[j+1])
        {
            temp = array[j];
            array[j] = array[j+1];
            array[j+1] = temp;
            swap++;
        }
    }

    if(swap==0)
    {
        break;
    }
}

asked 24 Apr '17, 15:41

Al%20Mamun's gravatar image

Al Mamun
235

edited 03 May '17, 03:19


যদি আপনার এমন কোন অ্যারে থাকে যেটা কিনা অলরেডি sorted তখন সেটার উপর bubble sort চালানর দরকার নাই ।

মানে করেন আপনার এই রকম একটা লিস্ট আছে ১, ২, ৩, ৪, ৫, ৬, ৭, ৮, ৯, ১০

এখন আপনি কি ভাবে বুঝতেন যে এই লিস্ট টি sorted ? আপনার ২য় লুপে যে if condition দিয়েছেন সেটা একটু খেয়াল করেন । আপনার যে লিস্ট আছে সেটা কি কোন ভাবে এই তার শর্ত পূরণ করে । অর্থাৎ array[j] > array[j + 1] হয় ? এর উত্তর হল না হয় না । অর্থাৎ আপনার যে লিস্ট আছেন সেটা কিন্তু already sorted একটা লিস্ট । তাই আর লুপ চালানর কোন দরকার নাই ।

লক্ষ্য করেন । যদি একবারও array[j] > array[j + 1] এই শর্ত পূরণ না হয় তবে আপনার swap এর মান কিন্তু শূন্যই থেকে যাবে । যার অর্থ হল আমাদের অ্যারে সর্ট হয়ে গেছে । তাই এখন আমরা লুপ থেকে বের হতে পারি । লুপ থেকে বের হওয়ার জন্য আমরা শর্ত দিয়েছি

if(swap == 0) {
   break;
}

এখন মনে হয় বুঝতে সমস্যা হবে না ।

ধন্যবাদ :)

permanent link

answered 24 Apr '17, 16:51

menon's gravatar image

menon
4.7k335

সুন্দর ব্যাখ্যা!

(26 Apr '17, 05:49) mahrahat

ধন্যবাদ :) @mahrahat

(26 Apr '17, 06:25) menon

ধন্যবাদ @menon সাহেব...

(30 Apr '17, 09:21) Al Mamun

ধন্যবাদ @Al Mamun :)

(30 Apr '17, 10:53) menon
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×13
×5
×2

question asked: 24 Apr '17, 15:41

question was seen: 638 times

last updated: 03 May '17, 03:19