Bubble Sort
This sort gets its name from the way smaller/larger elements gets to the top of the list using bubble comparison
1 #include <iostream> 2 3 class BubbleSort 4 { 5 public: 6 BubbleSort(){} 7 ~BubbleSort(){} 8 void sort(int arr[], int size); 9 }; 10 11 void BubbleSort::sort(int arr[], int size) 12 { 13 //With every iteration in outer loop, the next maximum element is moved to it's correct position 14 for(int outerLoopIdx = 0; outerLoopIdx < size ; ++outerLoopIdx) 15 { 16 for(int innerLoopIdx = 0; innerLoopIdx < (size - outerLoopIdx - 1); ++innerLoopIdx) 17 { 18 //Comparing two subsequent elements OR bubble comparison 19 //Placing the larger element on the right 20 if(arr[innerLoopIdx] > arr[innerLoopIdx + 1]) 21 { 22 int temp = arr[innerLoopIdx]; 23 arr[innerLoopIdx] = arr[innerLoopIdx + 1]; 24 arr[innerLoopIdx + 1] = temp; 25 } 26 } 27 } 28 } 29 30 void print(int arr[], int size) 31 { 32 for(int i = 0; i < size; ++i) 33 std::cout << arr[i] << " "; 34 std::cout << std::endl; 35 } 36 37 int main() 38 { 39 int arr[] = { 10, 65, 35, 25, 15, 75, 85, 45, 65 }; 40 BubbleSort bs; 41 bs.sort(arr, 9); 42 print(arr, 9); 43 return 0; 44 }
Output
References:
Bubble Sort Animation
No comments :
Post a Comment