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

सी++ में विग्गल सॉर्ट II

मान लीजिए कि हमारे पास एक अवर्गीकृत सरणी संख्या है, हमें इसे इस तरह पुनर्व्यवस्थित करना होगा कि nums[0] nums[2]

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • एक सरणी x बनाएं, जिसमें अंकों के समान तत्व हों

  • सॉर्ट x सरणी

  • i :=x – 1, j:=का आकार (x – 1 का आकार)/2 और n :=nums array का आकार

  • l के लिए 0 से n – 1 की सीमा में, प्रत्येक चरण में l को 2 से बढ़ाएँ

    • अंक [एल]:=एक्स [जे]

    • j को 1 से घटाएं

  • 1 से n - 1 की सीमा में l के लिए प्रत्येक चरण में l को 2 से बढ़ाएँ

    • अंक [एल] :=x[i]

    • मैं 1 से घटाता हूं

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

उदाहरण

#include <bits/stdc++.h>
using namespace std;
void print_vector(vector<auto> v){
   cout << "[";
   for(int i = 0; i<v.size(); i++){
      cout << v[i] << ", ";
   }
   cout << "]"<<endl;
}
class Solution {
   public:
   void wiggleSort(vector<int>& nums) {
      vector <int> x(nums);
      sort(x.begin(), x.end());
      int i = x.size() - 1 ;
      int j = (x.size() - 1)/2;
      int n = nums.size();
      for(int l = 0; l < n; l +=2){
         nums[l] = x[j--];
      }
      for(int l = 1; l < n; l +=2){
         nums[l] = x[i--];
      }
   }
};
main(){
   vector<int> v = {1,5,1,1,6,4};
   Solution ob;
   (ob.wiggleSort(v));
   print_vector(v);
}

इनपुट

[1,5,1,1,6,4]

आउटपुट

[1, 6, 1, 5, 1, 4, ]

  1. सी ++ में 3-तरफा मर्ज सॉर्ट करें

    मर्ज सॉर्ट में सरणी को 2 भागों में पुनरावर्ती रूप से विभाजित करना, सॉर्ट करना और अंत में उन्हें मर्ज करना शामिल है। मर्ज सॉर्ट के एक प्रकार को 3-वे मर्ज सॉर्ट के रूप में माना जाता है जहां सरणी को 2 भागों में विभाजित करने के बजाय हम इसे 3 भागों में विभाजित करते हैं। मर्ज सॉर्ट, पुनरावर्ती तरीके से स

  1. C++ में बाइनरी इंसर्शन सॉर्ट करें

    बाइनरी इंसर्शन सॉर्ट एक विशेष प्रकार का इंसर्शन सॉर्ट है जो सरणी में सम्मिलित तत्व की सही स्थिति का पता लगाने के लिए बाइनरी सर्च एल्गोरिथम का उपयोग करता है। इंसर्शन सॉर्ट सॉर्टिंग तकनीक है जो ऐरे में एलीमेंट की सही स्थिति का पता लगाकर और फिर उसे उसकी सही स्थिति में इंसर्ट करके काम करती है। द्विआधा

  1. सी ++ में स्ट्रैंड सॉर्ट करें

    इस खंड में हम देखेंगे कि हम सी ++ के मानक पुस्तकालय का उपयोग करके कुछ सरणी या लिंक्ड सूची को कैसे सॉर्ट कर सकते हैं। सी ++ में कई अलग-अलग पुस्तकालय हैं जिनका उपयोग विभिन्न उद्देश्यों के लिए किया जा सकता है। छँटाई उनमें से एक है। C++ फ़ंक्शन std::list::sort() सूची के तत्वों को आरोही क्रम में क्रमबद्