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

पैनकेक छँटाई के लिए सी कार्यक्रम?

यह सी प्रोग्राम पूर्णांकों की सरणी पर पैनकेक सॉर्ट लागू करता है।

पैनकेक छँटाई छँटाई समस्या का एक रूपांतर है जिसमें अनुक्रम के कुछ उपसर्ग के तत्वों को उलटने के लिए एकमात्र अनुमत संचालन है।

पैनकेक छँटाई आकार के क्रम में पैनकेक के अव्यवस्थित ढेर को छांटने की गणितीय समस्या के लिए बोलचाल का शब्द है, जब स्टैक में किसी भी बिंदु पर एक स्पैटुला डाला जा सकता है और इसके ऊपर सभी पेनकेक्स को फ्लिप करने के लिए उपयोग किया जाता है। पैनकेक संख्या पैनकेक की दी गई संख्या के लिए आवश्यक फ़्लिप की न्यूनतम संख्या है

Input:5,3,2,1,4
Output:1 2 3 4 5

स्पष्टीकरण

यह छँटाई समस्या का एक रूपांतर है जिसमें अनुक्रम के कुछ उपसर्ग के तत्वों को उलटने के लिए एकमात्र अनुमत संचालन है। एक पारंपरिक छँटाई एल्गोरिथ्म के विपरीत, जो संभव कम से कम तुलना के साथ क्रमबद्ध करने का प्रयास करता है, लक्ष्य अनुक्रम को यथासंभव कुछ उलटफेर में क्रमबद्ध करना है। समस्या का एक प्रकार जले हुए पैनकेक से संबंधित है, जहां प्रत्येक पैनकेक का एक जला हुआ पक्ष होता है और इसके अलावा, सभी पैनकेक को जले हुए हिस्से के साथ समाप्त होना चाहिए।

उदाहरण

#include <iostream>
using namespace std;
void do_flip(int *, int, int);
int pancake_sort(int *list, unsigned int length) {
   if (length < 2)
      return 0;
   int i, a, max_num_pos, moves;
   moves = 0;
   for (i = length;i > 1;i--) {
      max_num_pos = 0;
      for (a = 0;a < i;a++){
         if (list[a] > list[max_num_pos])
            max_num_pos = a;
      }
      if (max_num_pos == i - 1)
         continue;
      if (max_num_pos){
         moves++;
         do_flip(list, length, max_num_pos + 1);
      }
      do_flip(list, length, i);
   }
   return moves;
}
void do_flip(int *list, int length, int num) {
   int swap;
   int i = 0;
   for (i=0;i < --num;i++) {
      swap = list[i];
      list[i] = list[num];
      list[num] = swap;
   }
}
int main(int argc, char **argv) {
   int arr[]={5,3,2,1,4};
   int n=5;
   int moves=pancake_sort(arr, n);
   for (int i = 0;i < n;i++) {
      printf("%d ", arr[i]);
   }
   printf(" - with a total of %d moves\n", moves);
}

  1. सी मैट्रिसेस के घटाव के लिए कार्यक्रम

    दो आव्यूहों MAT1[row][column] और MAT2[row][column] को देखते हुए हमें दो आव्यूहों के बीच का अंतर खोजना होगा और दो आव्यूहों के घटाव के बाद प्राप्त परिणाम को प्रिंट करना होगा। दो आव्यूहों का घटाव MAT1[n][m] - MAT2[n][m] है। घटाव के लिए दोनों आव्यूहों की पंक्तियों और स्तंभों की संख्या समान होनी चाहिए

  1. आर्मस्ट्रांग नंबरों के लिए सी प्रोग्राम

    हमें एक टास्क दिया जाता है जहां हमें उपयोगकर्ता द्वारा दर्ज किए गए नंबर n की जांच करनी होती है, चाहे वह आर्मस्ट्रांग हो या नहीं। एक आर्मस्ट्रांग संख्या तब होती है जब अंकों की संख्या से सभी अंकों की शक्ति का योग होता है या हम कह सकते हैं कि अंकों का क्रम अंक के समान है। तो आर्मस्ट्रांग नंबर कैसे पत

  1. C आयत के क्षेत्रफल और परिमाप के लिए कार्यक्रम

    एक आयत की लंबाई और चौड़ाई को देखते हुए हमें उसका क्षेत्रफल और परिमाप ज्ञात करना होता है। आयत 2-डी आकृति है जिसमें चार भुजाएँ और प्रत्येक 90 डिग्री के चार कोण हैं। आयत की सभी भुजाएँ समान नहीं होती केवल आयत की सम्मुख भुजाएँ समान होती हैं। एक आयत के विकर्ण भी समान लंबाई के होते हैं। नीचे आयत का आरेखी