बबल सॉर्ट एक तुलना-आधारित सॉर्टिंग एल्गोरिदम है। इस एल्गोरिदम में आसन्न एलिमेंट्स की तुलना की जाती है और सही क्रम बनाने के लिए स्वैप किया जाता है। यह एल्गोरिदम अन्य एल्गोरिदम की तुलना में सरल है, लेकिन इसकी कुछ कमियां भी हैं। यह एल्गोरिदम बड़ी संख्या में डेटा सेट के लिए उपयुक्त नहीं है। सॉर्टिंग कार्यों को हल करने में इसे बहुत समय लगता है।
बबल सॉर्ट तकनीक की जटिलता
- समय जटिलता: बेस्ट केस के लिए O(n), औसत और वर्स्ट केस के लिए O(n²)
- स्पेस जटिलता: O(1)
इनपुट और आउटपुट
इनपुट: अनसॉर्टेड डेटा की सूची: 56 98 78 12 30 51 आउटपुट: सॉर्टिंग के बाद सरणी: 12 30 51 56 78 98
एल्गोरिदम
bubbleSort( array, size)
इनपुट - डेटा की एक सरणी, और सरणी में कुल संख्या
आउटपुट - सॉर्टेड सरणी
Begin for i := 0 to size-1 do flag := 0; for j:= 0 to size –i – 1 do if array[j] > array[j+1] then swap array[j] with array[j+1] flag := 1 done if flag ≠ 1 then break the loop. done End
उदाहरण
#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 array[j+1]) { //जब वर्तमान आइटम अगले से बड़ा है swapping(array[j], array[j+1]); swaps = 1; //स्वैप फ्लैग सेट करें } } if(!swaps) break; // इस पास में कोई स्वैप नहीं, तो सरणी सॉर्टेड है } } int main() { int n; cout << "Enter the number of elements: "; cin >> n; int arr[n]; //दिए गए एलिमेंट्स की संख्या के साथ सरणी बनाएं cout << "Enter elements:" << endl; for(int i = 0; iआउटपुट
Enter the number of elements: 6 Enter elements: 56 98 78 12 30 51 Array before Sorting: 56 98 78 12 30 51 Array after Sorting: 12 30 51 56 78 98