সি প্রোগ্রামিং ভাষায়, বাবল সোর্ট হল সবচেয়ে সহজ সোর্টিং টেকনিক এবং এক্সচেঞ্জ সোর্ট হিসেও ডাকা হয়।
বাবল সোর্টের প্রসিডিউর
প্রথম এলিমেন্টটি বাকি এলিমেন্টসের সাথে তুলনা করুন এবং অর্ডার না থাকলে এক্সচেঞ্জ (সওয়াপ) করুন।
লিস্টের অন্যান্য এলিমেন্টসের জন্যও একই প্রক্রিয়া রিপিট করুন যতক্ষণ না সব এলিমেন্ট সোর্ট হয়।
অ্যালগরিদম
বাবল সোর্ট টেকনিক ব্যবহার করে সংখ্যা লিস্টকে অ্যাসেন্ডিং অর্ডারে সোর্ট করার অ্যালগরিদম নিচে দেওয়া হল:
Step 1 − Start
Step 2 − Take list(array), num
Step 3 − readlist(list,num)
Step 4 − printlist(list,num)
Step 5 − bub_sort(list,num)
Step 6 − printlist(list,num)
readlist (list, num)
Step 7 − stop
1. for j = 0 to num 2. read list[j].
printlist(list,num)
1. for j =0 to num 2. write list[j].
bub_sort(list,num)
1. for i = 0 to num 2. for j =0 to (num – i) 3. if( list[j] > list[j+1]) 4. swapList( address of list[j], address of list[j+1])
swapList( address of list[j], address of list[j+1])
1. temp = value at list[j] 2. value at list[j] = value at list[j+1] 3. value at list[j+1] = temp
উদাহরণ
বাবল সোর্ট টেকনিক ব্যবহার করে সংখ্যা লিস্টকে অ্যাসেন্ডিং অর্ডারে সোর্ট করার সি প্রোগ্রাম:
#include <stdio.h> #define MAX 10 void swapList(int *m,int *n){ int temp; temp = *m; *m = *n; *n = temp; } /* Function for Bubble Sort */ void bub_sort(int list[], int n){ int i,j; for(i=0;i<(n-1);i++) for(j=0;j<(n-(i+1));j++) if(list[j] > list[j+1]) swapList(&list[j],&list[j+1]); } void readlist(int list[],int n){ int j; printf("\nEnter the elements: \n"); for(j=0;j<n;j++) scanf("%d",&list[j]); } /* Showing the contents of the list */ void printlist(int list[],int n){ int j; for(j=0;j<n;j++) printf("%d\t",list[j]); } void main(){ int list[MAX], num; printf(" Enter the number of elements \n"); scanf("%d",&num); readlist(list,num); printf("\n\nElements in the list before sorting are:\n"); printlist(list,num); bub_sort(list,num); printf("\n\nElements in the list after sorting are:\n"); printlist(list,num); }
আউটপুট
Enter the number of elements 10 Enter the elements: 11 23 45 1 3 6 35 69 10 22 Elements in the list before sorting are: 11 23 45 1 3 6 35 69 10 22 Elements in the list after sorting are: 1 3 6 10 11 22 23 35 45 69