संबंधित आइटम्स का समूह जो एक सामान्य नाम से संग्रहीत होता है, सरणी कहलाता है।
सिंटैक्स
datatype array_name[size];
आरंभीकरण
घोषणा के समय आरंभीकरण:
int a[5] = {10, 20, 30, 40, 50};
C में सरणी उलटना
हम स्वैपिंग तकनीक का उपयोग करके सरणी को उलट सकते हैं।
उदाहरण: यदि 'P' चार एलिमेंट्स की पूर्णांक सरणी है:
मूल: P[0]=1, P[1]=2, P[2]=3, P[3]=4 उलटा: P[0]=4, P[1]=3, P[2]=2, P[3]=1
उदाहरण प्रोग्राम
#include <stdio.h>
int main() {
int num, i, j, array1[50], array2[50];
printf("Enter number of elements in array:\n");
scanf("%d", &num);
printf("Enter array elements:\n");
for(i = 0; i < num; i++)
scanf("%d", &array1[i]);
// दूसरी सरणी में उलटे क्रम में कॉपी करें
for(i = num - 1, j = 0; i >= 0; i--, j++)
array2[j] = array1[i];
// उलटी सरणी को मूल में वापस कॉपी करें
for(i = 0; i < num; i++)
array1[i] = array2[i];
printf("The reversed array:\n");
for(i = 0; i < num; i++)
printf("%d\n", array1[i]);
return 0;
}
आउटपुट
Enter number of elements in array: 4 Enter array elements: 20 50 60 70 The reversed array: 70 60 50 20
बेहतर दृष्टिकोण: इन-प्लेस रिवर्सल (अतिरिक्त सरणी के बिना)
void reverseArray(int arr[], int n) {
int start = 0, end = n - 1, temp;
while(start < end) {
temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
}
// उपयोग:
int arr[] = {1, 2, 3, 4, 5};
int n = 5;
reverseArray(arr, n);
// arr अब {5, 4, 3, 2, 1} है
तुलना
| विधि | स्पेस कॉम्प्लेक्सिटी | समय कॉम्प्लेक्सिटी | नोट्स |
|---|---|---|---|
| अतिरिक्त सरणी | O(n) | O(n) | सरल, अतिरिक्त मेमोरी |
| इन-प्लेस स्वैप | O(1) | O(n) | कुशल, अनुशंसित |
| रिकर्सिव | O(n) स्टैक | O(n) | शैक्षिक, स्टैक ओवरफ्लो जोखिम |
मुख्य बिंदु
- इन-प्लेस रिवर्सल के लिए दो पॉइंटर्स (शुरुआत और अंत) का उपयोग करें।
- लूप तब तक चलाएं जब तक
start < end। - यह दृष्टिकोण मेमोरी-कुशल है और बड़ी सरणियों के लिए उपयुक्त है।