算法之“本末倒置”-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+" ");
            }
        }
    }

}

 

 

 

posted @ 2012-12-25 16:46  张涵哲琪  阅读(218)  评论(0编辑  收藏  举报