Let's go

实现一个Reverse方法,作用是将array数组中,从begin位置到end位置之间的元素反序。例如,原数组内容[1,2,3,4,5,6],反转第2到4个位置的内容,结果:[1,4,3,2,5,6]

方法:

static void Main(string[] args)
        {
            string a = "";string b="";
            int[] _array = new int[6] { 1, 2, 3, 4, 5, 6 };
            for (int i = 0; i < _array.Length; i++)
            {
                if (i == 0)
                {
                    a = "" + _array[i];
                }
                else {
                    a = a+"," + _array[i];
                }
            }
            Console.WriteLine(a);
            //RecursiveReverse(_array, 0, _array.Length - 1);        
            RecursiveReverse(_array, 1, 3);
            for (int i = 0; i < _array.Length; i++)
            {
                if (i == 0)
                {
                    b= "" + _array[i];
                }
                else
                {
                    b =b+ "," + _array[i];
                }
            }

            Console.WriteLine(b);
            Console.ReadLine();
        }

        private static void RecursiveReverse(int[] _array, int left, int right)
        {
            if (left >= right)
                return;
            //转换方式一
            // int temp = list[left];
            // list[left] = list[right];
            // list[right] = temp;

            //转换方式二
            _array[left] ^= _array[right];
            _array[right] ^= _array[left];
            _array[left] ^= _array[right];

            RecursiveReverse(_array, ++left, --right);
        }

 

posted @ 2020-03-18 11:25  chenze  阅读(407)  评论(0编辑  收藏  举报
有事您Q我