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

C प्रोग्राम: ऐरे रोटेशन के लिए रिवर्सल एल्गोरिदम


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

आइए उन शर्तों को जानें जिन्हें इस समस्या को हल करने के लिए जानना आवश्यक है:

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

ऐरे रोटेशन − ऐरे को घुमाने का अर्थ है ऐरे के तत्वों के क्रम को बदलना। तत्व के इंडेक्स को एक से बढ़ाना और अंतिम तत्व के इंडेक्स को 0 में बदलना, और इसी तरह।

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

Array[] = {3, 6, 8, 1, 4, 10}
2 बार घुमाने पर,
Array[] = {1, 4, 10, 3, 6, 8}

रिवर्सल एल्गोरिदम

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

एल्गोरिदम

इनपुट: ऐरे arr[], घुमाने के लिए पोजीशन r, ऐरे की लंबाई n।
चरण 1: ऐरे को 0-(d-1) और d-(n-1) आकार के दो सब ऐरे में विभाजित करें, a1[d] और a2[n-d];
चरण 2: रिवर्स मेथड का उपयोग करके दोनों ऐरे को उलटें।
चरण 3: मूल आकार का ऐरे प्राप्त करने के लिए a1 और a2 को वापस जोड़ें।
चरण 4: इस जुड़े हुए ऐरे को उलट कर घुमाया हुआ ऐरे प्राप्त करें।
चरण 5: मानक आउटपुट मेथड का उपयोग करके ऐरे प्रिंट करें।

उदाहरण,

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} // उलटा a1
a2r[] = {5,6,3,8} // उलटा a2
ar[] = {2,4,1,5,6,3,8} // a1r+a2r
arr[] = {8,3,6,5,1,4,2} // अंतिम उत्तर।

उदाहरण

#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++ में सरणी के एलिमेंट्स का गुणनफल C++ में सरणी के एलिमेंट्स का गुणनफल

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

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

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

  1. पायथन प्रोग्राम: सरणी रोटेशन पायथन प्रोग्राम: सरणी रोटेशन

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक टेक्स्ट और एक पैटर्न दिया गया है, हमें पैटर्न और उसके क्रमपरिवर्तन (या एनाग्राम) की सभी घटनाओं को टेक्स्ट में प्रिंट करना है। उदाहरण # अधिकतम मान MAX = 300 # तुलना def compare(arr1, arr2): for i in range(MAX):