در این مطلب، روش نوشتن برنامه معکوس کردن رشته و آرایه آموزش داده شده و سپس، پیادهسازی آن در زبانهای برنامهنویسی گوناگون شامل ++C، «جاوا» (Java)، «پایتون» (Python)، «سیشارپ» (#C) و «پیاچپی» (PHP) انجام شده است. در اینجا هدف آن است که یک آرایه (رشته) ورودی معکوس و در خروجی، آرایه/رشته معکوس شده چاپ شود. مثال زیر در این راستا قابل توجه است.
Input :arr[]={1,2,3} Output:arr[]={3,2,1} Input: arr[]={4,5,1,2} Output:arr[]={2,1,5,4} |
روش تکرار شونده برای معکوس کردن رشته و آرایه
- اندیسهای شروع و پایان را به صورت start = 0 و end = n-1 مقداردهی اولیه کن.
- در حلقه، [arr[start را با [arr[end جا به جا کن و start و end را به صورت زیر تغییر بده:
start = start +1, end = end – 1
مثالی از معکوس کردن آرایه:
مثالی از معکوس کردن رشته:
برنامه معکوس کردن رشته و آرایه در ++C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | // Iterative C++ program to reverse an array #include <bits/stdc++.h> usingnamespacestd; /* Function to reverse arr[] from start to end*/ voidrvereseArray(intarr[],intstart,intend) { while(start<end) { inttemp=arr[start]; arr[start]=arr[end]; arr[end]=temp; start++; end--; } } /* Utility function to print an array */ voidprintArray(intarr[],intsize) { for(inti=0;i<size;i++) cout<<arr[i]<<" "; cout<<endl; } /* Driver function to test above functions */ intmain() { intarr[]={1,2,3,4,5,6}; intn=sizeof(arr)/sizeof(arr[0]); // To print original array printArray(arr,n); // Function calling rvereseArray(arr,0,n-1); cout<<"Reversed array is"<<endl; // To print the Reversed array printArray(arr,n); return0; } |
برنامه معکوس کردن آرایه در C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | // Iterative C program to reverse an array #include<stdio.h> /* Function to reverse arr[] from start to end*/ voidrvereseArray(intarr[],intstart,intend) { inttemp; while(start<end) { temp=arr[start]; arr[start]=arr[end]; arr[end]=temp; start++; end--; } } /* Utility that prints out an array on a line */ voidprintArray(intarr[],intsize) { inti; for(i=0;i<size;i++) printf("%d ",arr[i]); printf("\n"); } /* Driver function to test above functions */ intmain() { intarr[]={1,2,3,4,5,6}; intn=sizeof(arr)/sizeof(arr[0]); printArray(arr,n); rvereseArray(arr,0,n-1); printf("Reversed array is \n"); printArray(arr,n); return0; } |
برنامه معکوس کردن رشته و آرایه در جاوا
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | // Iterative java program to reverse an // array publicclassGFG{ /* Function to reverse arr[] from start to end*/ staticvoidrvereseArray(intarr[], intstart,intend) { inttemp; while(start<end) { temp=arr[start]; arr[start]=arr[end]; arr[end]=temp; start++; end--; } } /* Utility that prints out an array on a line */ staticvoidprintArray(intarr[], intsize) { for(inti=0;i<size;i++) System.out.print(arr[i]+" "); System.out.println(); } // Driver code publicstaticvoidmain(Stringargs[]){ intarr[]={1,2,3,4,5,6}; printArray(arr,6); rvereseArray(arr,0,5); System.out.print("Reversed array is \n"); printArray(arr,6); } } // This code is contributed by Sam007 |
برنامه معکوس کردن رشته و آرایه در پایتون
# Iterative python program to reverse an array # Function to reverse A[] from start to end defreverseList(A,start,end): whilestart<end: A[start],A[end]=A[end],A[start] start+=1 end-=1 # Driver function to test above function A=[1,2,3,4,5,6] print(A) reverseList(A,0,5) print("Reversed list is") print(A) # This program is contributed by Pratik Chhajer |
برنامه معکوس کردن رشته و آرایه در #C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | // Iterative C# program to reverse an // array usingSystem; classGFG{ /* Function to reverse arr[] from start to end*/ staticvoidrvereseArray(int[]arr, intstart,intend) { inttemp; while(start<end) { temp=arr[start]; arr[start]=arr[end]; arr[end]=temp; start++; end--; } } /* Utility that prints out an array on a line */ staticvoidprintArray(int[]arr, intsize) { for(inti=0;i<size;i++) Console.Write(arr[i]+" "); Console.WriteLine(); } // Driver function publicstaticvoidMain() { int[]arr={1,2,3,4,5,6}; printArray(arr,6); rvereseArray(arr,0,5); Console.Write("Reversed array is \n"); printArray(arr,6); } } // This code is contributed by Sam007 |
برنامه معکوس کردن رشته و آرایه در PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | <?php // Iterative PHP program // to reverse an array /* Function to reverse $arr from start to end*/ functionrvereseArray(&$arr, $start, $end) { while ($start < $end) { $temp = $arr[$start]; $arr[$start]=$arr[$end]; $arr[$end]=$temp; $start++; $end--; } } /* Utility function to print an array */ functionprintArray(&$arr, $size) { for ($i = 0;$i<$size;$i++) echo$arr[$i]." "; echo"\n"; } // Driver code $arr=array(1,2,3,4,5,6); // To print original array printArray($arr,6); // Function calling rvereseArray($arr,0,5); echo"Reversed array is"."\n"; // To print the Reversed array printArray($arr,6); // This code is contributed // by ChitraNayal ?> |
خروجی قطعه کدهای بالا، در ادامه آمده است.
123456 Reversed arrayis 654321 |
پیچیدگی زمانی این روش از درجه (O(n است.
روش بازگشتی برای معکوس کردن رشته و آرایه
- اندیسهای شروع و پایان را به صورت start = 0 و end = n-1 مقداردهی اولیه کن.
- [arr[start را با [arr[end جا به جا کن.
- به طور بازگشتی، reverse را برای بقیه آرایه فراخوانی کن.
در ادامه، پیادهسازی روش بازگشتی برای معکوس کردن آرایه ارائه شده است.
برنامه معکوس کردن رشته و آرایه در ++C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | // Recursive C++ program to reverse an array #include <bits/stdc++.h> usingnamespacestd; /* Function to reverse arr[] from start to end*/ voidrvereseArray(intarr[],intstart,intend) { if(start>=end) return; inttemp=arr[start]; arr[start]=arr[end]; arr[end]=temp; // Recursive Function calling rvereseArray(arr,start+1,end-1); } /* Utility function to print an array */ voidprintArray(intarr[],intsize) { for(inti=0;i<size;i++) cout<<arr[i]<<" "; cout<<endl; } /* Driver function to test above functions */ intmain() { intarr[]={1,2,3,4,5,6}; // To print original array printArray(arr,6); // Function calling rvereseArray(arr,0,5); cout<<"Reversed array is"<<endl; // To print the Reversed array printArray(arr,6); return0; } |
برنامه معکوس کردن رشته و آرایه در C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | // Recursive C program to reverse an array #include <stdio.h> /* Function to reverse arr[] from start to end*/ voidrvereseArray(intarr[],intstart,intend) { inttemp; if(start>=end) return; temp=arr[start]; arr[start]=arr[end]; arr[end]=temp; rvereseArray(arr,start+1,end-1); } /* Utility that prints out an array on a line */ voidprintArray(intarr[],intsize) { inti; for(i=0;i<size;i++) printf("%d ",arr[i]); printf("\n"); } /* Driver function to test above functions */ intmain() { intarr[]={1,2,3,4,5,6}; printArray(arr,6); rvereseArray(arr,0,5); printf("Reversed array is \n"); printArray(arr,6); return0; } |
برنامه معکوس کردن رشته و آرایه در جاوا
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | // Recursive Java Program to reverse an array importjava.io.*; classReverseArray{ /* Function to reverse arr[] from start to end*/ staticvoidrvereseArray(intarr[],intstart,intend) { inttemp; if(start>=end) return; temp=arr[start]; arr[start]=arr[end]; arr[end]=temp; rvereseArray(arr,start+1,end-1); } /* Utility that prints out an array on a line */ staticvoidprintArray(intarr[],intsize) { for(inti=0;i<size;i++) System.out.print(arr[i]+" "); System.out.println(""); } /*Driver function to check for above functions*/ publicstaticvoidmain(String[]args){ intarr[]={1,2,3,4,5,6}; printArray(arr,6); rvereseArray(arr,0,5); System.out.println("Reversed array is "); printArray(arr,6); } } /*This article is contributed by Devesh Agrawal*/ |
برنامه معکوس کردن رشته و آرایه در پایتون
# Recursive python program to reverse an array # Function to reverse A[] from start to end defreverseList(A,start,end): ifstart>=end: return A[start],A[end]=A[end],A[start] reverseList(A,start+1,end-1) # Driver function to test above function A=[1,2,3,4,5,6] print(A) reverseList(A,0,5) print("Reversed list is") print(A) # This program is contributed by Pratik Chhajer |
برنامه معکوس کردن رشته و آرایه در #C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | // C# program to reverse an array usingSystem; classGFG { /* Function to reverse arr[] from start to end*/ staticvoidrvereseArray(int[]arr,intstart, intend) { inttemp; if(start>=end) return; temp=arr[start]; arr[start]=arr[end]; arr[end]=temp; rvereseArray(arr,start+1,end-1); } /* Utility that prints out an array on a line */ staticvoidprintArray(int[]arr,intsize) { for(inti= 0;i<size;i++) Console.Write(arr[i]+" "); Console.WriteLine(""); } // Driver Code publicstaticvoidMain() { int[]arr={1,2,3,4,5,6}; printArray(arr,6); rvereseArray(arr,0,5); Console.WriteLine("Reversed array is "); printArray(arr,6); } } // This code is contributed by Sam007 |
برنامه معکوس کردن رشته و آرایه در PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | <?php // Iterative PHP program // to reverse an array /* Function to reverse $arr from start to end*/ functionrvereseArray(&$arr, $start, $end) { if ($start >= $end) return; $temp=$arr[$start]; $arr[$start]=$arr[$end]; $arr[$end]=$temp; //Recursive Function calling rvereseArray($arr,$start+1, $end-1); } /* Utility function to print an array */ functionprintArray(&$arr, $size) { for ($i = 0;$i<$size;$i++) echo$arr[$i]." "; echo"\n"; } // Driver code $arr=array(1,2,3,4,5,6); // To print original array printArray($arr,6); // Function calling rvereseArray($arr,0,5); echo"Reversed array is"."\n"; // To print the Reversed array printArray($arr,6); // This code is contributed // by ChitraNayal ?> |
خروجی قطعه کدهای بالا، به صورت زیر است.
123456 Reversed arrayis 654321 |
پیچیدگی زمانی این روش نیز از درجه (O(n است.
اگر نوشته بالا برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامه نویسی
- آموزش ساختمان دادهها
- مجموعه آموزشهای ساختمان داده و طراحی الگوریتم
- رنگآمیزی گراف به روش حریصانه — به زبان ساده
- الگوریتم دایجسترا (Dijkstra) — از صفر تا صد
- الگوریتم پریم — به زبان ساده
^^
«الهام حصارکی»، فارغالتحصیل مقطع کارشناسی ارشد مهندسی فناوری اطلاعات، گرایش سیستمهای اطلاعات مدیریت است. او در زمینه هوش مصنوعی و دادهکاوی، به ویژه تحلیل شبکههای اجتماعی، فعالیت میکند.
بر اساس رای 6 نفر
آیا این مطلب برای شما مفید بود؟