分享

数组的逆序

 雪柳花明 2016-09-24
首先分析一下:数组的逆序就是  数组的长度为n=array.Length-1.
把第1个和倒数第1个交换                
把第2个和倒数第2个交换 
把第3个和倒数第3个交换 
.....................................
如果让left从第一个索引开始,right从倒数第一个索引开始。
交换位置
left+1,成为数组的第二个数。
right-1,成为数组的倒数第2个数
...............
一直这样,直到left>=right
交换完毕。

该算法是线性的。复杂度为大O(n)。

C#的代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace reverseArray
{
    class Program
    {
        /// <summary>
        /// 倒序数组
        /// </summary>
        /// <param name="nums"></param>
        public static void reverse(int[] nums)
        {
            //左边索引
            int left = 0;
            //右边索引
            int right = nums.Length-1;
            //左右不等,一直交换
            while (left < right)
            {
                int temp = nums[left];
                nums[left]=nums[right];
                nums[right] = temp;
                left++;
                right--;
            }

        }

        /// <summary>
        /// 显示数组
        /// </summary>
        /// <param name="nums"></param>
        public static void display(int[] nums)
        {
            foreach (var item in nums)
            {
                Console.WriteLine(item);
            }
        }

        static void Main(string[] args)
        {
            int[] nums = { 5,4,10,3,6,8,9,45};
            display(nums);

            Console.WriteLine("--------逆序数组--------------");
            reverse(nums);
            display(nums);

            Console.Read();
        }
    }
}



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多