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

सी ++ में एक एसटीडी ::वेक्टर कैसे फेरबदल करें

फिशर-येट्स शफल एल्गोरिथम में एक वेक्टर फेरबदल किया जा सकता है।

इस एल्गोरिथम में, एक वेक्टर का एक रैखिक स्कैन किया जाता है और फिर प्रत्येक तत्व को एक यादृच्छिक तत्व के साथ सभी शेष तत्वों के बीच स्वैप किया जाता है, जिसमें स्वयं तत्व भी शामिल है।

एल्गोरिदम

Begin
  Declare a function show().
      Pass a constructor of a vector as a parameter within show() function.
      for (auto const& i: input)
         Print the value of variable i.
      Declare v of vector type.
         Initialize some values into v vector in array pattern.
      Declare a variable size of the integer datatype.
      Call size() function to get the size of the vector.
         Initialize size = v.size().
      for (int i = 0; i < size - 1; i++)
         int j = i + rand() % (size - i).
         call swap() function to swap the values of v[i] and v[j].
      print “Elements after getting shuffled”.
      Call show() function to display the suffled value of v vector.
End.

उदाहरण कोड

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void show(vector<int> const &input) {
   for (auto const& i: input) {
      std::cout << i << " ";
   }
}
int main() {
   vector<int> v = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
   int size = v.size();
   for (int i = 0; i < size - 1; i++) {
      int j = i + rand() % (size - i);
      swap(v[i], v[j]);
   }
   cout<<"Elements after getting shuffled"<<endl;
   show(v);
   return 0;
}

आउटपुट

Elements after getting shuffled
2 8 5 3 1 9 4 7 6

  1. सी ++ में किसी फ़ंक्शन में सरणी पैरामीटर का आकार कैसे मुद्रित करें?

    डेटा प्रकार का आकार sizeof() का उपयोग करके प्राप्त किया जा सकता है। एक प्रोग्राम जो C++ में किसी फ़ंक्शन में सरणी पैरामीटर के मुद्रण को प्रदर्शित करता है, वह निम्नानुसार दिया गया है। उदाहरण #include <iostream> using namespace std; int func(int a[]) {    cout << "Size: &quo

  1. सी ++ में एक वर्ण को स्ट्रिंग में कैसे परिवर्तित करें?

    एक वर्ण को एक स्ट्रिंग में बदलने की कई विधियाँ हैं। निम्नलिखित उदाहरण में, उनमें से कुछ का उपयोग किसी वर्ण को एक स्ट्रिंग में बदलने के लिए किया जाता है। यहाँ C++ भाषा में किसी एकल वर्ण को स्ट्रिंग में बदलने का एक उदाहरण दिया गया है, उदाहरण #include <iostream> #include<string> #include&l

  1. सी ++ में वेक्टर की सामग्री को कैसे मुद्रित करें?

    वेक्टर गतिशील सरणियों के समान होते हैं लेकिन वेक्टर आकार बदल सकते हैं। वेक्टर अनुक्रम कंटेनर हैं जो तत्वों को सम्मिलित करने या हटाने के अनुसार अपना आकार बदल सकते हैं। कंटेनर वे ऑब्जेक्ट होते हैं जिनमें एक ही प्रकार का डेटा होता है। वेक्टर में तत्वों के भविष्य के विकास के लिए वेक्टर कुछ अतिरिक्त भंड