বাবল বাছাই তুলনা ভিত্তিক বাছাই অ্যালগরিদম. এই অ্যালগরিদমে সংলগ্ন উপাদানগুলি তুলনা করা হয় এবং সঠিক ক্রম তৈরি করতে অদলবদল করা হয়। এই অ্যালগরিদমটি অন্যান্য অ্যালগরিদমগুলির তুলনায় সহজ, তবে এর কিছু ত্রুটিও রয়েছে৷ এই অ্যালগরিদম বিপুল সংখ্যক ডেটা সেটের জন্য উপযুক্ত নয়৷ সাজানোর কাজগুলো সমাধান করতে অনেক সময় লাগে।
বাবল সাজানোর কৌশলের জটিলতা
-
সময়ের জটিলতা:সেরা ক্ষেত্রে O(n), O(n 2 ) গড় এবং সবচেয়ে খারাপ ক্ষেত্রে
-
স্থান জটিলতা:O(1)
ইনপুট − সাজানো তথ্যের একটি তালিকা:56 98 78 12 30 51 আউটপুট − সাজানোর পর অ্যারে:12 30 51 56 78 98
অ্যালগরিদম
বাবলসর্ট(অ্যারে, আকার)
ইনপুট :ডেটার একটি অ্যারে, এবং অ্যারের মোট সংখ্যা
আউটপুট :সাজানো অ্যারে
<প্রে> i এর জন্য শুরু করুন :=0 থেকে সাইজ-1 ডু পতাকা :=0; j:=0 থেকে সাইজ –i – 1 করুন যদি অ্যারে[j]> অ্যারে[j+1] তারপর অ্যারে[j] অ্যারে[j+1] পতাকা দিয়ে অদলবদল করুন :=1 সম্পন্ন হলে ফ্ল্যাগ ≠ 1 তারপর লুপ ভেঙে দিন . সম্পন্ন হয়েছেউদাহরণ কোড
#includeনেমস্পেস ব্যবহার করে std;void সোয়াপিং(int &a, int &b) {//a এবং b int temp-এর বিষয়বস্তু অদলবদল করুন; temp =a; a =b; b =temp;} void display(int *array, int size) { for(int i =0; i array[j+1]) { //when বর্তমান আইটেম পরবর্তী সোয়াপিংয়ের চেয়ে বড় (অ্যারে[জে], অ্যারে[জে+1]); অদলবদল =1; // swap ফ্ল্যাগ সেট করুন } } if(!swaps) break; // এই পাসে কোন অদলবদল নেই, তাই অ্যারে সাজানো হয়েছে }}int main() { int n; cout <<"উপাদানের সংখ্যা লিখুন:"; cin>> n; int arr[n]; //প্রদত্ত সংখ্যক উপাদান সহ একটি অ্যারে তৈরি করুন cout <<"এন্টার উপাদান:" < > arr[i]; } cout <<"বাছাই করার আগে অ্যারে:"; প্রদর্শন (আরআর, এন); bubbleSort(arr, n); cout <<"বাছাই করার পরে অ্যারে:"; প্রদর্শন(arr, n);}
আউটপুট
উপাদানের সংখ্যা লিখুন:6 উপাদান লিখুন:56 98 78 12 30 51 সাজানোর আগে অ্যারে:56 98 78 12 30 51 সাজানোর পরে অ্যারে:12 30 51 56 78 98