算法之“本末倒置”-1
算法之:本末倒置
已知一个顺序表表,写一个算法将其倒置:实现效果:
算法思路:把第一个元素与最后一个元素交换,把第二个元素与倒数第二个元素交换,一般地,把第i个元素与第n-i个元素交换,
i的取值范围是0到n/2(n为顺序表的长度)。
实现代码如下:
using System; using System.Collections; namespace Ayylist { class Program { static void Main(string[] args) { int[] Ayy =new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }; ArrayList list = new ArrayList(); NewMethod(Ayy, list); int tmp = 0; int len = list.Count; for (int i = 0; i < len / 2; ++i) { tmp = (int)list[i]; list[i] = list[len - i-1]; list[len - i-1] = tmp; } Console.WriteLine(); foreach (int s in list) { Console.Write(s.ToString()+" "); } Console.ReadKey(); } private static void NewMethod(int[] Ayy, ArrayList list) { foreach (int nu in Ayy) { list.Add(nu); Console.Write(nu+" "); } } } }