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

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

मान लीजिए कि हमारे पास nums नामक एक अनसोल्ड ऐरे है, हमें इसे इन-प्लेस पर फिर से व्यवस्थित करना होगा जैसे कि nums[0] <=nums[1]>=nums[2] <=nums[3].... और इसी तरह।

इसलिए, यदि इनपुट संख्या =[3,5,2,1,6,4] की तरह है, तो आउटपुट [3,5,1,6,2,4] होगा, कुछ अन्य उत्तर हो सकते हैं।

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

  • n :=अंकों का आकार

  • इनिशियलाइज़ करने के लिए मैं :=0, जब i

    • अगर मैं सम है और nums[i]> nums[i+1] सच है या i विषम है और nums[i]> nums[i+1] गलत है, तो

      • स्वैप (अंक [i], अंक [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) {
      int n = nums.size();
      for(int i = 0; i < n - 1; i+=1){
         if((i % 2 == 0) == ( nums[i] > nums[i + 1])){
            swap(nums[i], nums[i + 1]);
         }
      }
   }
};
main(){
   vector<int< v = {3,5,2,1,6,4};
   Solution ob;
   ob.wiggleSort(v);
   print_vector(v);
}

इनपुट

{3,5,2,1,6,4}

आउटपुट

[3, 5, 1, 6, 2, 4, ]

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

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

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

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

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

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