বাবল সাজানোর অ্যালগরিদমের একটি ভূমিকা

বাবল সাজানোর অ্যালগরিদমের একটি ভূমিকা

বাছাই করা সবচেয়ে মৌলিক ক্রিয়াকলাপগুলির মধ্যে একটি যা আপনি ডেটাতে প্রয়োগ করতে পারেন। আপনি বিভিন্ন সাজানোর অ্যালগরিদম যেমন কুইক বাছাই, বাবল বাছাই, মার্জ বাছাই, সন্নিবেশ বাছাই ইত্যাদি ব্যবহার করে বিভিন্ন প্রোগ্রামিং ভাষায় উপাদানগুলিকে বাছাই করতে পারেন।





এই নিবন্ধে, আপনি বুদ্বুদ সাজানোর অ্যালগরিদমের কাজ সম্পর্কে জানতে পারবেন, বুদ্বুদ সাজানোর অ্যালগরিদমের ছদ্মকোড, তার সময় এবং স্থান জটিলতা এবং বিভিন্ন প্রোগ্রামিং ভাষায় যেমন C ++, Python, C, এবং JavaScript এর বাস্তবায়ন।





বুদ্বুদ সাজানোর অ্যালগরিদম কিভাবে কাজ করে?

বাবল বাছাই হল সর্বাধিক বাছাইয়ের অ্যালগরিদম যা বারবার তালিকার মধ্য দিয়ে যায়, সংলগ্ন উপাদানগুলির তুলনা করে এবং যদি সেগুলি ভুল ক্রমে থাকে তবে সেগুলি অদলবদল করে। একটি উদাহরণের সাহায্যে এই ধারণাটি আরও দক্ষতার সাথে ব্যাখ্যা করা যেতে পারে। নিম্নলিখিত উপাদানগুলির সাথে একটি বিন্যস্ত অ্যারে বিবেচনা করুন: {16, 12, 15, 13, 19}।





উদাহরণ:

এখানে সংলগ্ন উপাদানগুলি তুলনা করা হয় এবং যদি তারা আরোহী ক্রমে না থাকে তবে সেগুলি অদলবদল করা হয়।



বাবল সাজানোর অ্যালগরিদমের ছদ্দকোড

সিউডোকোডে, বাবল সাজানোর অ্যালগরিদমকে এভাবে প্রকাশ করা যেতে পারে:

bubbleSort(Arr[], size)
// loop to access each array element
for i=0 to size-1 do:
// loop to compare array elements
for j=0 to size-i-1 do:
// compare the adjacent elements
if Arr[j] > Arr[j+1] then
// swap them
swap(Arr[j], Arr[j+1])
end if
end for
end for
end

উপরের অ্যালগরিদম সমস্ত তুলনা প্রক্রিয়া করে যদিও অ্যারে ইতিমধ্যেই সাজানো আছে। অ্যালগরিদম বন্ধ করে এটি আরও অনুকূলিত করা যেতে পারে যদি অভ্যন্তরীণ লুপ কোনও অদলবদল না করে। এটি অ্যালগরিদমের কার্যকর করার সময় কমিয়ে দেবে।





সুতরাং, অপ্টিমাইজড বুদ্বুদ সাজানোর অ্যালগরিদমের ছদ্মকোডটি এভাবে প্রকাশ করা যেতে পারে:

bubbleSort(Arr[], size)
// loop to access each array element
for i=0 to size-1 do:
// check if swapping occurs
swapped = false
// loop to compare array elements
for j=0 to size-i-1 do:
// compare the adjacent elements
if Arr[j] > Arr[j+1] then
// swap them
swap(Arr[j], Arr[j+1])
swapped = true
end if
end for
// if no elements were swapped that means the array is sorted now, then break the loop.
if(not swapped) then
break
end if
end for
end

বাবল সাজানোর অ্যালগরিদমের সময় জটিলতা এবং সহায়ক স্থান

বাবল সাজানোর অ্যালগরিদমের সবচেয়ে খারাপ সময়ের জটিলতা হল O (n-2)। এটি ঘটে যখন অ্যারেটি ক্রমবর্ধমান ক্রমে থাকে এবং আপনি এটি আরোহী ক্রমে বা উল্টোভাবে সাজাতে চান।





পিসি থেকে ওয়্যার্ড এক্সবক্স ওয়ান কন্ট্রোলার কিভাবে সংযুক্ত করবেন

বাবল সাজানোর অ্যালগরিদমের সেরা ক্ষেত্রে সময় জটিলতা হল O (n)। এটি ঘটে যখন অ্যারে ইতিমধ্যে বাছাই করা হয়।

কিভাবে xbox 360 এ অবতার মুছে ফেলা যায়

সম্পর্কিত: বিগ-ও নোটেশন কি?

বাবল বাছাই অ্যালগরিদমের গড়-কেস সময় জটিলতা O (n-2)। এটি ঘটে যখন অ্যারের উপাদানগুলি বিভ্রান্তিকর ক্রমে থাকে।

বাবল বাছাই অ্যালগরিদমের জন্য প্রয়োজনীয় সহায়ক স্থান হল O (1)।

C ++ বাবল সাজানোর অ্যালগরিদম বাস্তবায়ন

নীচে বাবল সাজানোর অ্যালগরিদমের C ++ বাস্তবায়ন:

// C++ implementation of the
// optimised Bubble Sort algorithm
#include
using namespace std;
// Function to perform Bubble Sort
void bubbleSort(int arr[], int size) {
// Loop to access each element of the array
for (int i=0; i<(size-1); i++) {
// Variable to check if swapping occurs
bool swapped = false;
// loop to compare two adjacent elements of the array
for (int j = 0; j <(size-i-1); j++) {
// Comparing two adjacent array elements
if (arr[j] > arr[j + 1]) {
// Swap both elements if they're
// not in correct order
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
swapped = true;
}
}
// If no elements were swapped that means the array is sorted now,
// then break the loop.
if (swapped == false) {
break;
}
}
}
// Prints the elements of the array
void printArray(int arr[], int size) {
for (int i = 0; i cout << arr[i] << ' ';
}
cout << endl;
}
int main() {
int arr[] = {16, 12, 15, 13, 19};
// Finding the length of the array
int size = sizeof(arr) / sizeof(arr[0]);
// Printing the given unsorted array
cout << 'Unsorted Array: ' << endl;
printArray(arr, size);
// Calling bubbleSort() function
bubbleSort(arr, size);
// Printing the sorted array
cout << 'Sorted Array in Ascending Order:' << endl;
printArray(arr, size);
return 0;
}

আউটপুট:

Unsorted Array:
16 12 15 13 19
Sorted Array in Ascending Order:
12 13 15 16 19

বাবল সাজানোর অ্যালগরিদমের পাইথন বাস্তবায়ন

নীচে বাবল সাজানোর অ্যালগরিদমের পাইথন বাস্তবায়ন রয়েছে:

# Python implementation of the
# optimised Bubble Sort algorithm

# Function to perform Bubble Sort
def bubbleSort(arr, size):
# Loop to access each element of the list
for i in range (size-1):
# Variable to check if swapping occurs
swapped = False
# loop to compare two adjacent elements of the list
for j in range(size-i-1):
# Comparing two adjacent list elements
if arr[j] > arr[j+1]:
temp = arr[j]
arr[j] = arr[j+1]
arr[j+1] = temp
swapped = True
# If no elements were swapped that means the list is sorted now,
# then break the loop.
if swapped == False:
break
# Prints the elements of the list
def printArray(arr):
for element in arr:
print(element, end=' ')
print('')

arr = [16, 12, 15, 13, 19]
# Finding the length of the list
size = len(arr)
# Printing the given unsorted list
print('Unsorted List:')
printArray(arr)
# Calling bubbleSort() function
bubbleSort(arr, size)
# Printing the sorted list
print('Sorted List in Ascending Order:')
printArray(arr)

আউটপুট:

Unsorted List:
16 12 15 13 19
Sorted List in Ascending Order:
12 13 15 16 19

সম্পর্কিত: পাইথনে লুপের জন্য কীভাবে ব্যবহার করবেন

C বাবল সাজানোর অ্যালগরিদম বাস্তবায়ন

নীচে বাবল সাজানোর অ্যালগরিদমের সি বাস্তবায়ন রয়েছে:

// C implementation of the
// optimised Bubble Sort algorithm
#include
#include
// Function to perform Bubble Sort
void bubbleSort(int arr[], int size) {
// Loop to access each element of the array
for (int i=0; i<(size-1); i++) {
// Variable to check if swapping occurs
bool swapped = false;
// loop to compare two adjacent elements of the array
for (int j = 0; j <(size-i-1); j++) {
// Comparing two adjacent array elements
if (arr[j] > arr[j + 1]) {
// Swap both elements if they're
// not in correct order
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
swapped = true;
}
}
// If no elements were swapped that means the array is sorted now,
// then break the loop.
if (swapped == false) {
break;
}
}
}
// Prints the elements of the array
void printArray(int arr[], int size) {
for (int i = 0; i printf('%d ', arr[i]);
}
printf(' ⁠n ');
}
int main() {
int arr[] = {16, 12, 15, 13, 19};
// Finding the length of the array
int size = sizeof(arr) / sizeof(arr[0]);
// Printing the given unsorted array
printf('Unsorted Array: ⁠n');
printArray(arr, size);
// Calling bubbleSort() function
bubbleSort(arr, size);
// Printing the sorted array
printf('Sorted Array in Ascending Order: ⁠n');
printArray(arr, size);
return 0;
}

আউটপুট:

Unsorted Array:
16 12 15 13 19
Sorted Array in Ascending Order:
12 13 15 16 19

বাবল সাজানোর অ্যালগরিদমের জাভাস্ক্রিপ্ট বাস্তবায়ন

নীচে বাবল সাজানোর অ্যালগরিদমের জাভাস্ক্রিপ্ট বাস্তবায়ন রয়েছে:

// JavaScript implementation of the
// optimised Bubble Sort algorithm
// Function to perform Bubble Sort
function bubbleSort(arr, size) {
// Loop to access each element of the array
for(let i=0; i // Variable to check if swapping occurs
var swapped = false;
// loop to compare two adjacent elements of the array
for(let j=0; j // Comparing two adjacent array elements
if(arr[j] > arr[j+1]) {
// Swap both elements if they're
// not in correct order
let temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
swapped = true;
}
// If no elements were swapped that means the array is sorted now,
// then break the loop.
if (swapped == false) {
break;
}
}
}
}
// Prints the elements of the array
function printArray(arr, size) {
for (let i=0; i document.write(arr[i] + ' ');
}
document.write('
')
}

var arr = [16, 12, 15, 13, 19];
// Finding the length of the array
var size = arr.length;
// Printing the given unsorted array
document.write('Unsorted Array:
');
printArray(arr, size);
// Calling bubbleSort() function
bubbleSort(arr, size);
// Printing the sorted array
document.write('Sorted Array in Ascending Order:
');
printArray(arr, size);

আউটপুট:

Unsorted Array:
16 12 15 13 19
Sorted Array in Ascending Order:
12 15 13 16 19

এখন আপনি বুদবুদ সাজানোর অ্যালগরিদমের কাজ বুঝতে পেরেছেন

বাবল বাছাই হল সর্বাধিক বাছাইয়ের অ্যালগরিদম এবং এটি মূলত সাজানোর ভিত্তি বোঝার জন্য ব্যবহৃত হয়। বাবল বাছাই পুনরাবৃত্তিমূলকভাবে প্রয়োগ করা যেতে পারে, কিন্তু এটি করার জন্য কোন অতিরিক্ত সুবিধা প্রদান করে না।

পাইথন ব্যবহার করে, আপনি সহজেই বাবল সাজানোর অ্যালগরিদম প্রয়োগ করতে পারেন। যদি আপনি পাইথনের সাথে অপরিচিত হন এবং আপনার যাত্রা শুরু করতে চান, তাহলে 'হ্যালো ওয়ার্ল্ড' স্ক্রিপ্ট দিয়ে শুরু করা একটি দুর্দান্ত পছন্দ।

শেয়ার করুন শেয়ার করুন টুইট ইমেইল কিভাবে 'হ্যালো ওয়ার্ল্ড' স্ক্রিপ্ট ব্যবহার করে পাইথন দিয়ে শুরু করা যায়

পাইথন বর্তমানে ব্যবহৃত অন্যতম জনপ্রিয় প্রোগ্রামিং ভাষা। আপনার প্রথম পাইথন স্ক্রিপ্ট দিয়ে শুরু করতে এই টিউটোরিয়ালটি অনুসরণ করুন।

পরবর্তী পড়ুন
সম্পর্কিত বিষয়
  • প্রোগ্রামিং
  • জাভা
  • পাইথন
  • কোডিং টিউটোরিয়াল
লেখক সম্পর্কে যুবরাজ চন্দ্র(60 নিবন্ধ প্রকাশিত)

যুবরাজ ভারতের দিল্লি বিশ্ববিদ্যালয়ের কম্পিউটার সায়েন্সের স্নাতক ছাত্র। তিনি ফুল স্ট্যাক ওয়েব ডেভেলপমেন্ট সম্পর্কে উত্সাহী। যখন তিনি লিখছেন না, তিনি বিভিন্ন প্রযুক্তির গভীরতা অন্বেষণ করছেন।

কিভাবে আপনার ব্যাকগ্রাউন্ড উইন্ডোজ 10 এ একটি জিআইএফ তৈরি করবেন
যুবরাজ চন্দ্রের কাছ থেকে আরো

আমাদের নিউজলেটার সদস্যতা

প্রযুক্তি টিপস, রিভিউ, ফ্রি ইবুক এবং এক্সক্লুসিভ ডিলের জন্য আমাদের নিউজলেটারে যোগ দিন!

সাবস্ক্রাইব করতে এখানে ক্লিক করুন