শেষের if(swap==0){break;} condition টা কিভাবে কাজ করে তা জানালে খুবই উপকৃত হব।
|
যদি আপনার এমন কোন অ্যারে থাকে যেটা কিনা অলরেডি sorted তখন সেটার উপর bubble sort চালানর দরকার নাই । মানে করেন আপনার এই রকম একটা লিস্ট আছে ১, ২, ৩, ৪, ৫, ৬, ৭, ৮, ৯, ১০ এখন আপনি কি ভাবে বুঝতেন যে এই লিস্ট টি sorted ? আপনার ২য় লুপে যে if condition দিয়েছেন সেটা একটু খেয়াল করেন । আপনার যে লিস্ট আছে সেটা কি কোন ভাবে এই তার শর্ত পূরণ করে । অর্থাৎ array[j] > array[j + 1] হয় ? এর উত্তর হল না হয় না । অর্থাৎ আপনার যে লিস্ট আছেন সেটা কিন্তু already sorted একটা লিস্ট । তাই আর লুপ চালানর কোন দরকার নাই । লক্ষ্য করেন । যদি একবারও array[j] > array[j + 1] এই শর্ত পূরণ না হয় তবে আপনার swap এর মান কিন্তু শূন্যই থেকে যাবে । যার অর্থ হল আমাদের অ্যারে সর্ট হয়ে গেছে । তাই এখন আমরা লুপ থেকে বের হতে পারি । লুপ থেকে বের হওয়ার জন্য আমরা শর্ত দিয়েছি
এখন মনে হয় বুঝতে সমস্যা হবে না । ধন্যবাদ :) |