একটি ফাংশন বা প্রোগ্রাম তৈরি করুন যা দুটি ইনপুট নেয়:
- পূর্ণসংখ্যার একটি তালিকা যা বাছাই করা হবে (২০ টিরও কম উপাদান)
N
আপনার কতটি তুলনা করা উচিত তা বলার জন্য একটি ধনাত্মক পূর্ণসংখ্যা
ফাংশনটি থামবে এবং N
তুলনার পরে ফলাফলগুলির পূর্ণসংখ্যার তালিকা আউটপুট করবে । N
তুলনা করার আগে যদি তালিকাটি সম্পূর্ণরূপে বাছাই করা হয়, তবে বাছাই করা তালিকা আউটপুট করা উচিত।
বুদ্বুদ সাজানোর আলগোরিদিম ভাল পরিচিত, এবং আমি মনে করি অধিকাংশ মানুষ জানি। নিম্নলিখিত সিউডো কোড এবং অ্যানিমেশন (লিঙ্কযুক্ত উইকিপিডিয়া-নিবন্ধ দুটি থেকে) প্রয়োজনীয় বিশদ সরবরাহ করতে হবে:
procedure bubbleSort( A : list of sortable items )
n = length(A)
repeat
swapped = false
for i = 1 to n-1 inclusive do
/* if this pair is out of order */
if A[i-1] > A[i] then
/* swap them and remember something changed */
swap( A[i-1], A[i] )
swapped = true
end if
end for
until not swapped
end procedure
নীচের অ্যানিমেশনটি অগ্রগতি দেখায়:
উদাহরণ (লিঙ্কযুক্ত উইকিপিডিয়া নিবন্ধ থেকে সরাসরি নেওয়া) তালিকাটি বাছাই করার সময় পদক্ষেপগুলি দেখায় ( 5 1 4 2 8 )
:
প্রথম পাস
1: ( 5 1 4 2 8 ) -> ( 1 5 4 2 8 ) // Here, algorithm compares the first two elements,
// and swaps since 5 > 1.
2: ( 1 5 4 2 8 ) -> ( 1 4 5 2 8 ) // Swap since 5 > 4
3: ( 1 4 5 2 8 ) -> ( 1 4 2 5 8 ) // Swap since 5 > 2
4: ( 1 4 2 5 8 ) -> ( 1 4 2 5 8 ) // Now, since these elements are already in order
// (8 > 5), algorithm does not swap them.
দ্বিতীয় পাস
5: ( 1 4 2 5 8 ) -> ( 1 4 2 5 8 )
6: ( 1 4 2 5 8 ) -> ( 1 2 4 5 8 ) // Swap since 4 > 2
7: ( 1 2 4 5 8 ) -> ( 1 2 4 5 8 )
8: ( 1 2 4 5 8 ) -> ( 1 2 4 5 8 )
এখন, অ্যারে ইতিমধ্যে বাছাই করা হয়েছে, তবে এটি সম্পন্ন হয়েছে কিনা তা অ্যালগরিদম জানে না। সাজানো হয়েছে তা জানতে অ্যালগরিদমের কোনও সোয়াপ ছাড়াই একটি পুরো পাস দরকার।
তৃতীয় পাস
9: ( 1 2 4 5 8 ) -> ( 1 2 4 5 8 )
10:( 1 2 4 5 8 ) -> ( 1 2 4 5 8 )
11:( 1 2 4 5 8 ) -> ( 1 2 4 5 8 )
12:( 1 2 4 5 8 ) -> ( 1 2 4 5 8 )
পরীক্ষার কেস:
বিন্যাস: Number of comparisons (N): List after N comparisons
Input list:
5 1 4 2 8
Test cases:
1: 1 5 4 2 8
2: 1 4 5 2 8
3: 1 4 2 5 8
4: 1 4 2 5 8
5: 1 4 2 5 8
6: 1 2 4 5 8
10: 1 2 4 5 8
14: 1 2 4 5 8
Input list:
0: 15 18 -6 18 9 -7 -1 7 19 19 -5 20 19 5 15 -5 3 18 14 19
Test cases:
1: 15 18 -6 18 9 -7 -1 7 19 19 -5 20 19 5 15 -5 3 18 14 19
21: -6 15 18 9 -7 -1 7 18 19 -5 19 19 5 15 -5 3 18 14 19 20
41: -6 9 -7 15 -1 7 18 18 -5 19 19 5 15 -5 3 18 14 19 19 20
60: -6 -7 -1 9 7 15 18 -5 18 19 5 15 -5 3 18 14 19 19 19 20
61: -6 -7 -1 7 9 15 18 -5 18 19 5 15 -5 3 18 14 19 19 19 20
81: -7 -6 -1 7 9 15 -5 18 18 5 15 -5 3 18 14 19 19 19 19 20
119: -7 -6 -1 -5 7 9 15 5 15 -5 3 18 14 18 18 19 19 19 19 20
120: -7 -6 -1 -5 7 9 15 5 15 -5 3 18 14 18 18 19 19 19 19 20
121: -7 -6 -1 -5 7 9 5 15 15 -5 3 18 14 18 18 19 19 19 19 20
122: -7 -6 -1 -5 7 9 5 15 15 -5 3 18 14 18 18 19 19 19 19 20
123: -7 -6 -1 -5 7 9 5 15 -5 15 3 18 14 18 18 19 19 19 19 20
201: -7 -6 -5 -1 -5 3 5 7 9 14 15 15 18 18 18 19 19 19 19 20
221: -7 -6 -5 -5 -1 3 5 7 9 14 15 15 18 18 18 19 19 19 19 20
- হ্যাঁ, অন্তর্নির্মিত বুদ্বুদ সাজানোর অ্যালগরিদমের অনুমতি রয়েছে।
- না, আপনি কেবল ধনাত্মক পূর্ণসংখ্যা বা অনন্য পূর্ণসংখ্যা ধরে নিতে পারবেন না।
- বাছাই অবশ্যই উপরের বর্ণিত ক্রমে থাকতে হবে। আপনি তালিকার শেষে শুরু করতে পারবেন না