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

सी प्रोग्राम फॉर रिवर्सल एल्गोरिथम फॉर एरे रोटेशन

एक एल्गोरिदम निर्देशों का एक समूह है जो दी गई समस्या को हल करने के लिए किया जाता है। यहां, हम ऐरे रोटेशन के लिए रिवर्सल एल्गोरिथम पर चर्चा करेंगे और रिवर्सल एल्गोरिथम के लिए एक प्रोग्राम बनाएंगे।

अब, आइए कुछ शर्तों पर आते हैं जिन्हें इस समस्या को हल करने के लिए हमें जानना आवश्यक है -

सरणी - समान डेटा प्रकार के तत्वों का एक कंटेनर। सरणी का आकार (तत्वों की संख्या) सरणी की घोषणा के समय तय किया जाता है।

सरणी रोटेशन - किसी सरणी को घुमाने से सरणी के तत्वों का क्रम बदल रहा है। तत्व के सूचकांक को एक से बढ़ाकर और अंतिम तत्व के सूचकांक को 0 और इसी तरह बदलना।

सरणी रोटेशन का उदाहरण,

Array[] = {3, 6, 8,1, 4, 10}
Rotated 2 times gives,
Array[] = {4, 10, 3, 6, 8, 1, 4}

उलट एल्गोरिदम

सरणी रोटेशन के लिए एल्गोरिदम में से एक उत्क्रमण एल्गोरिथ्म है। इस एल्गोरिथम में, सरणी के रोटेशन को करने के लिए सबएरे बनाए जाते हैं और उलट दिए जाते हैं। सबएरे बनाए जाते हैं, अलग-अलग घुमाए जाते हैं और फिर एक साथ जुड़ जाते हैं और घुमाए गए ऐरे को पाने के लिए वापस उलट दिए जाते हैं।

एल्गोरिदम

Input : array arr[] , positions that are needed to be rotated r , length of array n.
Step 1: Split the array into two sub arrays of 0 - (d-1) and d - (n-1) size, a1 [d] and a2[n-d];
Step 2: Reverse both arrays using the reverse method.
Step 3: Join a1 and a2 back to get an array of original size.
Step 4: Reverse this joined array to get the rotated array.
Step 5: Print the array using the standard output method.

उदाहरण,

arr[] = {1 ,4, 2, 8, 3, 6, 5}, d = 3, n = 7
a1[]  = {1,4,2} ; a2 = {8,3,6,5}
a1r[] = {2,4,1} // reversed a1
a2r[] = {5,6,3,8} // reversed a2
ar[]  = {2,4,1,5,6,3,8} // a1r+a2r
arr[] = {8,3,6,5,1,4,2} // final answer.

उदाहरण

#include <stdio.h>
void reverse(int arr[], int start, int end){
   int temp;
   while (start < end) {
      temp = arr[start];
      arr[start] = arr[end];
      arr[end] = temp;
      start++;
      end--;
   }
}
int main(){
   int arr[] = { 54, 67, 12, 76, 25, 16, 34 };
   int n = 7;
   int d = 2;
   printf("The initial array is :\n");
   for (int i = 0; i < n; i++)
      printf("%d ", arr[i]);
   reverse(arr, 0, d - 1);
   reverse(arr, d, n - 1);
   reverse(arr, 0, n - 1);
   printf("\nThe left reversed array by %d elements is:\n",d);
   for (int i = 0; i < n; i++)
      printf("%d ", arr[i]);
   return 0;
}

आउटपुट

The initial array is :
54 67 12 76 25 16 34
The left reversed array by 2 elements is:
12 76 25 16 34 54 67

  1. सरणी तत्वों के गुणन के लिए C++ प्रोग्राम

    पूर्णांक तत्वों की एक सरणी के साथ दिया गया और कार्य एक सरणी के तत्वों को गुणा करना और इसे प्रदर्शित करना है। उदाहरण Input-: arr[]={1,2,3,4,5,6,7} Output-: 1 x 2 x 3 x 4 x 5 x 6 x 7 = 5040 Input-: arr[]={3, 4,6, 2, 7, 8, 4} Output-: 3 x 4 x 6 x 2 x 7 x 8 x 4 = 32256 नीचे दिए गए कार्यक्रम में उपयोग क

  1. काउंटिंग सॉर्ट के लिए पायथन प्रोग्राम

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

  1. सरणी रोटेशन के लिए पायथन कार्यक्रम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - एक टेक्स्ट और एक पैटर्न को देखते हुए, हमें टेक्स्ट में पैटर्न और उसके क्रमपरिवर्तन (या विपर्यय) की सभी घटनाओं को प्रिंट करना होगा। आइए अब नीचे दिए गए कार्यान्वयन में समाधान देखें - उदाहरण # maximum value MAX = 300 #