बबल सॉर्ट तुलना-आधारित सॉर्टिंग एल्गोरिदम है। इस एल्गोरिदम में आसन्न तत्वों की तुलना की जाती है और सही क्रम बनाने के लिए स्वैप किया जाता है। यह एल्गोरिदम अन्य एल्गोरिदम की तुलना में सरल है, लेकिन इसकी कुछ कमियां भी हैं। यह एल्गोरिदम बड़ी संख्या में डेटा सेट के लिए उपयुक्त नहीं है। सॉर्टिंग कार्यों को हल करने में बहुत समय लगता है।
बबल सॉर्ट तकनीक की जटिलता
समय जटिलता: सर्वोत्तम मामले के लिए O(n), औसत और सबसे खराब स्थिति के लिए O(n2)
स्पेस जटिलता: O(1)
इनपुट − असॉर्टेड डेटा की एक सूची: 56 98 78 12 30 51 आउटपुट − सॉर्टिंग के बाद सरणी: 12 30 51 56 78 98
एल्गोरिदम
bubbleSort(array, size)
इनपुट: डेटा की एक सरणी, और सरणी में कुल संख्या
आउटपुट: क्रमबद्ध सरणी
शुरुआत i := 0 से size-1 तक करें flag := 0; j:= 0 से size –i – 1 तक करें यदि array[j] > array[j+1] तो array[j] को array[j+1] से स्वैप करें flag := 1 हो गया यदि flag ≠ 1 तो लूप तोड़ें। हो गया अंत
उदाहरण कोड
#include<iostream> using namespace std; void swapping(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<size; i++) cout << array[i] << " "; cout << endl; } void bubbleSort(int *array, int size) { for(int i = 0; i<size; i++) { int swaps = 0; //किसी स्वैप का पता लगाने के लिए झंडा for(int j = 0; j<size-i-1; j++) { if(array[j] > array[j+1]) { //जब वर्तमान आइटम अगले से बड़ा हो swapping(array[j], array[j+1]); swaps = 1; //स्वैप झंडा सेट करें } } if(!swaps) break; // इस पास में कोई स्वैप नहीं, इसलिए सरणी क्रमबद्ध है } } int main() { int n; cout << "तत्वों की संख्या दर्ज करें: "; cin >> n; int arr[n]; //दिए गए तत्वों की संख्या के साथ एक सरणी बनाएं cout << "तत्व दर्ज करें:" << endl; for(int i = 0; i<n; i++) { cin >> arr[i]; } cout << "सॉर्टिंग से पहले सरणी: "; display(arr, n); bubbleSort(arr, n); cout << "सॉर्टिंग के बाद सरणी: "; display(arr, n); }
आउटपुट
तत्वों की संख्या दर्ज करें: 6 तत्व दर्ज करें: 56 98 78 12 30 51 सॉर्टिंग से पहले सरणी: 56 98 78 12 30 51 सॉर्टिंग के बाद सरणी: 12 30 51 56 78 98