算法题一:C#将值插入给定数组中

**

题目:给定一个目标数组,将某个值插入到指定位置

**

从今天开始学习数据结构与算法,话不多说,着手开始吧!

本次题目以int类型为例

  static void Main(string[] args)
        {
            //向数组插入数据
            int[] ints = { 5, 9, 4, 7, 3 }; //长度为5 
            var newArr = InsertToArray(ints, 3, 8);
            foreach (var item in newArr)
            {
                //打印结果顺序应为 5 9 8 4 7 3
                Console.WriteLine(item);
            }

            Console.ReadKey();
        }
  /// 
        /// 向数组添加数据
        /// 
        /// 原有数组
        /// 添加的位置
        /// 添加的数据
        /// 
        public static int[] InsertToArray(int[] array, int d, int elem)
        {
            //创建新数组,确定长度
            int[] intsNew = new int[array.Length + 1];

            //判断位置是否大于数组的长度 或者小于1 
            if (d > array.Length || d < 1)
            {
                return null;
            }
            //如果位置为1,则将数据直接放到第一位,索引下标为0
            if (d == 1)
            {
                intsNew[0] = elem;
                for (int i = 1; i < array.Length; i++)
                {
                    intsNew[i] = array[i - 1];
                }
            }
            else if (d == intsNew.Length) //如果位置为最后一位,则将数据直接放到最后
            {
                intsNew = array;
                intsNew[intsNew.Length - 1] = elem;
            }
            else //如果位置为中间位置
            {
                for (int i = 0; i <= array.Length; i++)
                {
                    //将d之前的数据赋值给新数组
                    if (i < d)
                    {
                        intsNew[i] = array[i];
                    }
                    else if (i == d)
                    {
                        intsNew[i] = elem;
                    }
                    else if (i > d)
                    {
                        intsNew[i] = array[i - 1];
                    }

                }
            }




            return intsNew;
        }

这是着手写的第一个算法题,有意见可以提出来一起讨论,有更好的算法也可以一起分享呦!

你可能感兴趣的:(数据结构与算法,c#,数据结构,算法)