সর্টিং কী?
সর্টিং হল স্ট্রাকচারের উপাদানগুলো যৌক্তিকভাবে সাজানো। অর্থাৎ উপাদানগুলো ছোট থেকে বড় এর দিকে সাজানো (Ascending Order), বড় থেকে ছোট এর দিকে সাজানো (Descending Order)। যেমন আমাদের কাছে কিছু এলোমেলো সংখ্যা রয়েছে। আমরা চাচ্ছি যেগুলোকে ছোট থেকে বড় আকারে সাজাতে। এ সাজানো বড় থেকে ছোট হতে পারে বা ছোট থেকে বড় হতে পারে। ইংরেজিতে যাকে বলে Sorting। এই সাজানোর আইডিয়াটা অনেক সহজ মনে হলেও বাস্তব জীবনে এর অনেক ব্যবহার রয়েছে।
বাবল সর্ট :
বাবল অর্থ হচ্ছে বুদ বুদ। এটি কে বাবল সর্ট নামকরণ করার কারণ হচ্ছে bubbles rising surface এর মত উপাদানগুলি সঠিক ক্রমে চলে আসে। সে যাই হোক bubbles rising surface কিভাবে সঠিক ক্রমে চলে আসে সেটিতো আর আমরা দেখতে যায়নি। আমরা নিচের অ্যারের মাধ্যমে সেটি কিভাবে কাজ করে দেখি।
array | 15 | 8 | 16 | 3 | 18 | 21 | 10 | 9 |
এখানে প্রথমে 8 এর সাথে 15 এর তুলনা করবে। যাচাই করে দেখবে 8; 15 এর চাইতে ছোট কিনা। যেহেতু 8; 15 এর চাইতে ছোট, তাই 8 এর স্থানে 15 চলে যাবে এবং 15 এর স্থানে 8 চলে আসবে।
array | 8 | 15 | 16 | 3 | 18 | 21 | 10 | 9 |
16 এর সাথে 15 এর তুলনা করবে। যাচাই করে দেখবে 16; 15 এর চাইতে ছোট কিনা। যেহেতু না, তাই কোন আদল বদল হবে না।
array | 8 | 15 | 16 | 3 | 18 | 21 | 10 | 9 |
3 এর সাথে 16 এর তুলনা করবে। যাচাই করে দেখবে 3; 16 এর চাইতে ছোট কিনা। যেহেতু 3; 16 এর চাইতে ছোট, তাই 3 এর স্থানে 16 চলে যাবে এবং 16 এর স্থানে 3 চলে আসবে।
array | 8 | 15 | 3 | 16 | 18 | 21 | 10 | 9 |
18 এর সাথে 16 এর তুলনা করবে। যাচাই করে দেখবে 18; 16 এর চাইতে ছোট কিনা। যেহেতু না, তাই কোন আদল বদল হবে না।
array | 8 | 15 | 3 | 16 | 18 | 21 | 10 | 9 |
21 এর সাথে 18 এর তুলনা করবে। যাচাই করে দেখবে 21; 18 এর চাইতে ছোট কিনা। যেহেতু না, তাই কোন আদল বদল হবে না।
array | 8 | 15 | 3 | 16 | 18 | 21 | 10 | 9 |
10 এর সাথে 21 এর তুলনা করবে। যাচাই করে দেখবে 10; 21 এর চাইতে ছোট কিনা। যেহেতু 10; 21 এর চাইতে ছোট, তাই 10 এর স্থানে 21 চলে যাবে এবং 21 এর স্থানে 10 চলে আসবে।
array | 8 | 15 | 3 | 16 | 18 | 10 | 21 | 9 |
9 এর সাথে 21 এর তুলনা করবে। যাচাই করে দেখবে 9; 21 এর চাইতে ছোট কিনা। যেহেতু 9; 21 এর চাইতে ছোট, তাই 9 এর স্থানে 21 চলে যাবে এবং 21 এর স্থানে 9 চলে আসবে।
array | 8 | 15 | 3 | 16 | 18 | 10 | 9 | 21 |
এখানে আমরা লক্ষ করলে দেখবে সবছেয়ে ডানের সংখ্যাটি 21 যা সবার চাইতে বড়। যেহেতু সবছেয়ে বড় সংখ্যা 21 সবার শেষে চলে এসেছে তাই আর আমাদের 21 পর্যন্ত যাওয়ার প্রয়োজন নাই। এবার আমরা শুরু থেকে 9 পর্যন্ত তুলনা করা শুরু করব।
array | 8 | 15 | 3 | 16 | 18 | 10 | 9 | 21 |
15 এর সাথে 8 এর তুলনা করবে। যাচাই করে দেখবে 15; 8 এর চাইতে ছোট কিনা। যেহেতু না, তাই কোন আদল বদল হবে না।
array | 8 | 15 | 3 | 16 | 18 | 10 | 9 | 21 |
3 এর সাথে 15 এর তুলনা করবে। যাচাই করে দেখবে 3; 15 এর চাইতে ছোট কিনা। যেহেতু 3; 15 এর চাইতে ছোট, তাই 15 এর স্থানে 3 চলে যাবে এবং 3 এর স্থানে 15 চলে আসবে।
array | 8 | 3 | 15 | 16 | 18 | 10 | 9 | 21 |
16 এর সাথে 15 এর তুলনা করবে। যাচাই করে দেখবে 16; 15 এর চাইতে ছোট কিনা। যেহেতু না, তাই কোন আদল বদল হবে না।
array | 8 | 3 | 15 | 16 | 18 | 10 | 9 | 21 |
18 এর সাথে 16 এর তুলনা করবে। যাচাই করে দেখবে 18; 16 এর চাইতে ছোট কিনা। যেহেতু না, তাই কোন আদল বদল হবে না।
array | 8 | 3 | 15 | 16 | 18 | 10 | 9 | 21 |
10 এর সাথে 18 এর তুলনা করবে। যাচাই করে দেখবে 10; 18 এর চাইতে ছোট কিনা। যেহেতু 10; 18 এর চাইতে ছোট, তাই 10 এর স্থানে 18 চলে যাবে এবং 18 এর স্থানে 10 চলে আসবে।
array | 8 | 3 | 15 | 16 | 10 | 18 | 9 | 21 |
9 এর সাথে 18 এর তুলনা করবে। যাচাই করে দেখবে 9; 18 এর চাইতে ছোট কিনা। যেহেতু 9; 18 এর চাইতে ছোট, তাই 9 এর স্থানে 18 চলে যাবে এবং 18 এর স্থানে 9 চলে আসবে।
array | 8 | 3 | 15 | 16 | 10 | 9 | 18 | 21 |
আমরা যেহেতু আগেই বলেছিলাম আমরা 9 পর্যন্ত তুলনা করব। এখানে আমরা লক্ষ করলে দেখব সবছেয়ে ডানের সংখ্যাটি 18 যা সবার চাইতে বড়। যেহেতু এখানে সবছেয়ে বড় সংখ্যা 18 সবার শেষে চলে এসেছে তাই আর আমাদের 18 পর্যন্ত যাওয়ার প্রয়োজন নাই। এবার আমরা শুরু থেকে আবার 9 পর্যন্ত তুলনা করা শুরু করব।
array | 8 | 3 | 15 | 16 | 10 | 9 | 18 | 21 |
3 এর সাথে 8 এর তুলনা করবে। যাচাই করে দেখবে 3; 8 এর চাইতে ছোট কিনা। যেহেতু 3; 8 এর চাইতে ছোট, তাই 3 এর স্থানে 8 চলে যাবে এবং 8 এর স্থানে 3 চলে আসবে।
array | 3 | 8 | 15 | 16 | 10 | 9 | 18 | 21 |
15 এর সাথে 8 এর তুলনা করবে। যাচাই করে দেখবে 15; 8 এর চাইতে ছোট কিনা। যেহেতু না, তাই কোন আদল বদল হবে না।
array | 3 | 8 | 15 | 16 | 10 | 9 | 18 | 21 |
16 এর সাথে 15 এর তুলনা করবে। যাচাই করে দেখবে 16; 15 এর চাইতে ছোট কিনা। যেহেতু না, তাই কোন আদল বদল হবে না।
array | 3 | 8 | 15 | 16 | 10 | 9 | 18 | 21 |
10 এর সাথে 16 এর তুলনা করবে। যাচাই করে দেখবে 10; 16 এর চাইতে ছোট কিনা। যেহেতু 10; 16 এর চাইতে ছোট, তাই 10 এর স্থানে 16 চলে যাবে এবং 16 এর স্থানে 10 চলে আসবে।
array | 3 | 8 | 15 | 10 | 16 | 9 | 18 | 21 |
9 এর সাথে 16 এর তুলনা করবে। যাচাই করে দেখবে 9; 16 এর চাইতে ছোট কিনা। যেহেতু 9; 16 এর চাইতে ছোট, তাই 9 এর স্থানে 16 চলে যাবে এবং 16 এর স্থানে 9 চলে আসবে।
array | 3 | 8 | 15 | 10 | 9 | 16 | 18 | 21 |
আমরা যেহেতু আগেই বলেছি আমরা 9 পর্যন্ত তুলনা করব। এখানে আমরা লক্ষ করলে দেখব সবছেয়ে ডানের সংখ্যাটি 16 যা সব চাইতে বড়। যেহেতু এখানে সবছেয়ে বড় সংখ্যা 16 সবার শেষে চলে এসেছে তাই আর আমাদের 16 পর্যন্ত যাওয়ার প্রয়োজন নাই। এবার আমরা শুরু থেকে আবার 9 পর্যন্ত তুলনা করা শুরু করব।
array | 3 | 8 | 15 | 10 | 9 | 16 | 18 | 21 |
8 এর সাথে 3 এর তুলনা করবে। যাচাই করে দেখবে 8; 3 এর চাইতে ছোট কিনা। যেহেতু না, তাই কোন আদল বদল হবে না।
array | 3 | 8 | 15 | 10 | 9 | 16 | 18 | 21 |
15 এর সাথে 8 এর তুলনা করবে। যাচাই করে দেখবে 15; 8 এর চাইতে ছোট কিনা। যেহেতু না, তাই কোন আদল বদল হবে না।
array | 3 | 8 | 15 | 10 | 9 | 16 | 18 | 21 |
10 এর সাথে 15 এর তুলনা করবে। যাচাই করে দেখবে 10; 15 এর চাইতে ছোট কিনা। যেহেতু 10; 15 এর চাইতে ছোট, তাই 10 এর স্থানে 15 চলে যাবে এবং 15 এর স্থানে 10 চলে আসবে।
array | 3 | 8 | 10 | 15 | 9 | 16 | 18 | 21 |
9 এর সাথে 15 এর তুলনা করবে। যাচাই করে দেখবে 9; 15 এর চাইতে ছোট কিনা। যেহেতু 9; 15 এর চাইতে ছোট, তাই 9 এর স্থানে 15 চলে যাবে এবং 15 এর স্থানে 9 চলে আসবে।
array | 3 | 8 | 10 | 9 | 15 | 16 | 18 | 21 |
আমরা যেহেতু আগেই বলেছি আমরা 9 পর্যন্ত তুলনা করব। এখানে আমরা লক্ষ করলে দেখব সবছেয়ে ডানের সংখ্যাটি 15 যা সব চাইতে বড়। যেহেতু এখানে সবছেয়ে বড় সংখ্যা 15 সবার শেষে চলে এসেছে তাই আর আমাদের 15 পর্যন্ত যাওয়ার প্রয়োজন নাই। এবার আমরা শুরু থেকে আবার 9 পর্যন্ত তুলনা করা শুরু করব।
array | 3 | 8 | 10 | 9 | 15 | 16 | 18 | 21 |
8 এর সাথে 3 এর তুলনা করবে। যাচাই করে দেখবে 8; 3 এর চাইতে ছোট কিনা। যেহেতু না, তাই কোন আদল বদল হবে না।
array | 3 | 8 | 10 | 9 | 15 | 16 | 18 | 21 |
10 এর সাথে 8 এর তুলনা করবে। যাচাই করে দেখবে 10; 8 এর চাইতে ছোট কিনা। যেহেতু না, তাই কোন আদল বদল হবে না।
array | 3 | 8 | 10 | 9 | 15 | 16 | 18 | 21 |
9 এর সাথে 10 এর তুলনা করবে। যাচাই করে দেখবে 9; 10 এর চাইতে ছোট কিনা। যেহেতু 9; 10 এর চাইতে ছোট, তাই 9 এর স্থানে 10 চলে যাবে এবং 10 এর স্থানে 9 চলে আসবে।
array | 3 | 8 | 9 | 10 | 15 | 16 | 18 | 21 |
আমরা যেহেতু আগেই বলেছি আমরা 9 পর্যন্ত তুলনা করব। এখানে আমরা লক্ষ করলে দেখব সবছেয়ে ডানের সংখ্যাটি 10 যা সব চাইতে বড়। যেহেতু এখানে সবছেয়ে বড় সংখ্যা 10 সবার শেষে চলে এসেছে তাই আর আমাদের 10 পর্যন্ত যাওয়ার প্রয়োজন নাই। এবার আমরা শুরু থেকে আবার 9 পর্যন্ত তুলনা করা শুরু করব।
array | 3 | 8 | 9 | 10 | 15 | 16 | 18 | 21 |
8 এর সাথে 3 এর তুলনা করবে। যাচাই করে দেখবে 8; 3 এর চাইতে ছোট কিনা। যেহেতু না, তাই কোন আদল বদল হবে না।
array | 3 | 8 | 9 | 10 | 15 | 16 | 18 | 21 |
9 এর সাথে 8 এর তুলনা করবে। যাচাই করে দেখবে 9; 8 এর চাইতে ছোট কিনা। যেহেতু না তাই কোন আদল বদল হবে না।
array | 3 | 8 | 9 | 10 | 15 | 16 | 18 | 21 |
আমরা যেহেতু আগেই বলেছি আমরা 9 পর্যন্ত তুলনা করব। এখানে আমরা লক্ষ করলে দেখব সবছেয়ে ডানের সংখ্যাটি 9 যা সব চাইতে বড়। যেহেতু এখানে সবছেয়ে বড় সংখ্যা 9 সবার শেষে চলে এসেছে তাই আর আমাদের 9 পর্যন্ত যাওয়ার প্রয়োজন নাই। এবার আমরা শুরু থেকে আবার 8 পর্যন্ত তুলনা করা শুরু করব।
array | 3 | 8 | 9 | 10 | 15 | 16 | 18 | 21 |
8 এর সাথে 3 এর তুলনা করবে। যাচাই করে দেখবে 8; 3 এর চাইতে ছোট কিনা। যেহেতু না তাই কোন আদল বদল হবে না।
array | 3 | 8 | 9 | 10 | 15 | 16 | 18 | 21 |
এখন অ্যারের সকল ইলিমেন্টের সাথে সাথে সকল ইলিমেন্টের তুললা করা হয়ে গেছে। আমরা লক্ষ করলে দেখব আমাদের অ্যারেটির সংখ্যাগুলো বড় থেকে ছোট আকারে সাজানো হয়ে গেছে।
array | 3 | 8 | 9 | 10 | 15 | 16 | 18 | 21 |
যেহেতু আমরা অ্যালগরিদমটি কিভাবে কাজ করে বুঝতে পেরেছি। তাই এবার আমরা প্রোগ্রামিং এর সাহায্যে বাবল সর্ট অ্যালগরিদমটি সমাধান করব। আমরা এখানে জাভা এবং সি দুটি ল্যাংগুয়েজের এর সাহায্যে প্রোগ্রামটি সমাধান করে দেখিয়েছি।
জাভা এর সাহায্যে:
সি এর সাহায্যে:
প্রোগ্রামটি কিভাবে কাজ করে তা নিচের চিত্রের মাধ্যমে বর্ণনা করা হল:
Advantages of Bubble short:
Disadvantages of Bubble short:
ধন্যবাদ।
আমি মোহাম্মদ আক্তারুজ্জামান। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 4 বছর 7 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 4 টি টিউন ও 0 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 1 ফলোয়ার আছে এবং আমি টেকটিউনসে 1 টিউনারকে ফলো করি।
I have completed my diploma engineering degree in 2021. As a computer diploma engineer, I have various knowledge about computer-related work. I have been working successfully in various freelancing marketplaces since 2016 as a GRAPHIC DESIGNER. In 2017, I completed a course on FRONT END WEB DEVELOPMENT from a reputed...
প্রিয় মোহাম্মদ আক্তারুজ্জামান,
আমি টেকটিউনস কমিউনিটি ম্যানেজার,
টেকটিউনস থেকে আপনার সাথে অফিসিয়ালি যোগাযোগ করতে চাচ্ছি। টেকটিউনস থেকে আপনার সাথে অফিসিয়ালি যোগাযোগ করার জন্য লিংকটিতে ক্লিক করে আপনার সাথে যোগাযোগের প্রয়োজনীয় তথ্য সাবমিট করে আমাদের সাহায্য করবেন আশা করছি।
ছদ্ম ছবি, নাম, ইমেইল, ফোন, ঠিকানা ও সৌশল Contact পরিহার করে আপনার প্রকৃত/আসল ছবি, নাম, ইমেইল, ফোন, ঠিকানা ও সৌশল Contact দিন। যেহেতু টেকটিউনস থেকে আপনার সাথে অফিসিয়ালি যোগাযোগ করা হবে।
সাবমিট করার পর আমাদের এই ম্যাসেজের রিপ্লাই আপনার কাছ থেকে আশা করছি।
ধন্যবাদ আপনাকে।