Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C प्रोग्राम में दिए गए ऐरे के k विभिन्न सॉर्ट किए गए क्रमपरिवर्तन प्रिंट करें।

एक सरणी को देखते हुए एक [] जिसमें एन पूर्णांक होते हैं, चुनौती है कि सूचकांक के विभिन्न क्रमपरिवर्तन को मुद्रित करना है जैसे कि उन सूचकांकों के मान एक गैर-घटते अनुक्रम बनाते हैं। प्रिंट -1 यदि संभव न हो तो।

उदाहरण

Input: arr[] = {2,5,6,2,2,2,2}, k = 4
Output:
   0 3 4 5 6 1 2
   3 0 4 5 6 1 2
   0 3 4 5 6 1 2
   3 0 4 5 6 1 2

दिए गए सरणी को क्रमबद्ध करें और प्रत्येक तत्व के मूल सूचकांकों पर नज़र रखें। यह एक आवश्यक क्रमपरिवर्तन देता है। अब यदि कोई 2 निरंतर तत्व समान हैं तो उन्हें एक और क्रमपरिवर्तन प्राप्त करने के लिए स्वैप किया जा सकता है। इसी तरह, तीसरा क्रमपरिवर्तन उत्पन्न किया जा सकता है।

एल्गोरिदम

START
Step 1 -> Declare Function void indice(int n, pair<int, int> array[])
   Loop For int i=0 and i<n and i++
      Print array[i].second
   End
Step 2 -> Declare Function void permutation(int n, int a[], int k)
   Use STL pair<int, int> arr[n]
   Loop for int i=0 and i<n and i++
      Set arr[i].first = a[i]
      Set arr[i].second = i
   End
   Call sort(arr, arr + n)
   Declare int count to 1
   Loop For int i=1 and i<n and i++
      IF (arr[i].first == arr[i - 1].first)
         Increment count by 1
      End
   End
   IF count < k
      Return -1
   End
   Loop For int i = 0 and i < k – 1 and i++
      Call indice(n, arr)
      Loop For int j = 1 and j < n and j++
         IF arr[j].first == arr[j - 1].first
            Call swap(arr[j], arr[j - 1])
            Break
         End
      End
   End
   Call indice(n, arr)
Step 3 -> In main()
   Declare array a[]={2,5,6,2,2,2,2}
   Declare int n= sizeof(a)/sizeof(a[0])
   Declare int k=4
   Call permutation(n,a,k)
STOP

उदाहरण

#include <bits/stdc++.h>
using namespace std;
void indice(int n, pair<int, int> array[]){
   for (int i = 0; i < n; i++)
      cout << array[i].second << " ";
   cout << endl;
}
void permutation(int n, int a[], int k){
   pair<int, int> arr[n];
   for (int i = 0; i < n; i++){
      arr[i].first = a[i];
      arr[i].second = i;
   }
   sort(arr, arr + n);
   int count = 1;
   for (int i = 1; i < n; i++)
      if (arr[i].first == arr[i - 1].first)
         count++;
   if (count < k){
      cout << "-1";
      return;
   }
   for (int i = 0; i < k - 1; i++){
      indice(n, arr);
      for (int j = 1; j < n; j++){
         if (arr[j].first == arr[j - 1].first){
            swap(arr[j], arr[j - 1]);
            break;
         }
      }
   }
   indice(n, arr);
}
int main(){
   int a[] ={2,5,6,2,2,2,2};
   int n = sizeof(a) / sizeof(a[0]);
   int k = 4;
   permutation(n, a, k);
   return 0;
}

आउटपुट

यदि हम उपरोक्त प्रोग्राम चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा

0 3 4 5 6 1 2
3 0 4 5 6 1 2
0 3 4 5 6 1 2
3 0 4 5 6 1 2

  1. सी प्रोग्राम में दिए गए मैट्रिक्स में शून्यों की संख्या के आधार पर छांटे गए कॉलम का प्रिंट इंडेक्स।

    आकार एनएक्सएम की एक सरणी को देखते हुए जहां एन पंक्तियों की संख्या और एम कॉलम की संख्या है, और कार्य किसी भी कॉलम में मौजूद शून्य की संख्या के आधार पर सॉर्ट ऑपरेशन करने के बाद संबंधित मैट्रिक्स के प्रत्येक कॉलम में शून्य की संख्या को प्रिंट करना है। उदाहरण के लिए यदि 1सेंट कॉलम में 1 शून्य और 2nd .

  1. सी प्रोग्राम में सापेक्ष क्रम में सरणी में तत्वों की अंतिम घटना को प्रिंट करें।

    तत्वों के साथ एक सरणी a [] दिया गया है और कार्य सूची में दिए गए तत्वों की अंतिम घटनाओं को मुद्रित करना है। यहां हमें न केवल डुप्लिकेट तत्वों को हटाना है, बल्कि हमें पिछली बार होने वाले तत्वों के अनुसार तत्वों की घटनाओं के क्रम को भी बनाए रखना है। जैसे हमारे पास 6 तत्वों की एक सरणी है जिसमें कुछ डुप

  1. किसी दिए गए स्ट्रिंग के सभी क्रमपरिवर्तन मुद्रित करने के लिए पायथन प्रोग्राम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक स्ट्रिंग दी गई है जिसकी हमें स्ट्रिंग के सभी संभावित क्रमपरिवर्तन प्रदर्शित करने की आवश्यकता है। आइए अब नीचे दिए गए कार्यान्वयन में समाधान देखें - उदाहरण # conversion def toString(List):    return &