Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

बकेट सॉर्ट को लागू करने के लिए C++ प्रोग्राम

बकेट सॉर्टिंग तकनीक में, डेटा आइटम बकेट के एक सेट में वितरित किए जाते हैं। प्रत्येक बकेट में समान प्रकार का डेटा हो सकता है। वितरण के बाद, प्रत्येक बाल्टी को दूसरे सॉर्टिंग एल्गोरिदम का उपयोग करके सॉर्ट किया जाता है। उसके बाद सॉर्ट किए गए फॉर्म को प्राप्त करने के लिए सभी तत्वों को मुख्य सूची में इकट्ठा किया जाता है।

बकेट सॉर्ट तकनीक की जटिलता

  • समय जटिलता:सर्वोत्तम मामले के लिए ओ (एन + के) और सबसे खराब मामले के लिए औसत मामले और ओ (एन 2)।

  • अंतरिक्ष जटिलता:ओ (एनके) सबसे खराब स्थिति के लिए

Input − A list of unsorted data: 0.25 0.36 0.58 0.41 0.29 0.22 0.45 0.79 0.01 0.69
Output − Array after Sorting: 0.01 0.22 0.25 0.29 0.36 0.41 0.45 0.58 0.69 0.79

एल्गोरिदम

bucketSort(सरणी, आकार)

इनपुट :डेटा की एक सरणी, और सरणी में कुल संख्या

आउटपुट :क्रमबद्ध सरणी

Begin
   for i := 0 to size-1 do
      insert array[i] into the bucket index (size * array[i])
   done
   for i := 0 to size-1 do
      sort bucket[i]
   done
   for i := 0 to size -1 do
      gather items of bucket[i] and put in array
   done
End

उदाहरण कोड

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
void display(float *array, int size) {
   for(int i = 0; i<size; i++)
      cout << array[i] << " ";
   cout << endl;
}
void bucketSort(float *array, int size) {
   vector<float> bucket[size];
   for(int i = 0; i<size; i++)  {          //put elements into different buckets
      bucket[int(size*array[i])].push_back(array[i]);
   }
   for(int i = 0; i<size; i++) {
      sort(bucket[i].begin(), bucket[i].end());       //sort individual vectors
   }
   int index = 0;
   for(int i = 0; i<size; i++) {
      while(!bucket[i].empty()) {
         array[index++] = *(bucket[i].begin());
         bucket[i].erase(bucket[i].begin());
      }
   }
}
int main() {
   int n;
   cout << "Enter the number of elements: ";
   cin >> n;
   float arr[n];     //create an array with given number of elements
   cout << "Enter elements:" << endl;
   for(int i = 0; i<n; i++) {
      cin >> arr[i];
   }
   cout << "Array before Sorting: ";
   display(arr, n);
   bucketSort(arr, n);
   cout << "Array after Sorting: ";
   display(arr, n);
}

आउटपुट

Enter the number of elements: 10
Enter elements:
0.25 0.36 0.58 0.41 0.29 0.22 0.45 0.79 0.01 0.69
Array before Sorting: 0.25 0.36 0.58 0.41 0.29 0.22 0.45 0.79 0.01
0.69
Array after Sorting: 0.01 0.22 0.25 0.29 0.36 0.41 0.45 0.58 0.69
0.79

  1. सी ++ प्रोग्राम ऐरे का उपयोग करके कतार को लागू करने के लिए

    एक कतार एक सार डेटा संरचना है जिसमें तत्वों का संग्रह होता है। कतार लागू करता हैफीफो तंत्र यानी पहले डाला गया तत्व भी पहले हटा दिया जाता है। दूसरे शब्दों में, हाल ही में जोड़े गए कम से कम तत्व को कतार में सबसे पहले हटा दिया जाता है। एक प्रोग्राम जो एक सरणी का उपयोग करके कतार को लागू करता है, वह इस

  1. सी ++ प्रोग्राम सरणी का उपयोग करके स्टैक को लागू करने के लिए

    स्टैक एक सार डेटा संरचना है जिसमें तत्वों का संग्रह होता है। स्टैक LIFO तंत्र को लागू करता है यानी अंत में धकेले जाने वाले तत्व को पहले पॉप आउट किया जाता है। स्टैक में कुछ सिद्धांत संचालन हैं - पुश - यह स्टैक के शीर्ष पर डेटा मान जोड़ता है। पॉप - यह स्टैक के शीर्ष पर डेटा मान को हटा देता है

  1. सी ++ प्रोग्राम सॉर्ट किए गए ऐरे को लागू करने के लिए

    एक क्रमबद्ध सरणी एक सरणी है जिसमें प्रत्येक तत्व को किसी क्रम में क्रमबद्ध किया जाता है जैसे संख्यात्मक, वर्णानुक्रम आदि। संख्यात्मक सरणी को सॉर्ट करने के लिए कई एल्गोरिदम हैं जैसे बबल सॉर्ट, इंसर्शन सॉर्ट, सेलेक्शन सॉर्ट, मर्ज सॉर्ट, क्विक सॉर्ट, ढेर सॉर्ट आदि। चयन सॉर्ट का उपयोग करके सरणी को सॉर्ट