zoukankan      html  css  js  c++  java
  • 微软面试题,倒置数组

    View Code
    namespace ConsoleApplication1
    {
        /// <summary>
        /// 微软面试题,一整数数组{1,2,3……}
        /// 选择其中某个数,然后将次数放置数组末尾,
        /// 比此数大的数放在数组前端递增排列
        /// 在后面添加比次数小的数,递增排列
        /// </summary>
        class Program
        {
            static void Main(string[] args)
            {
                //设定数组值为{1-20}
                int[] intArr = new int[20];
                for (int i = 0; i < intArr.Length; i++)
                {
                    intArr[i] = i + 1;
                }
    
                //获取用户选择的数字
                Console.WriteLine("SelectElements(1-20):");
                int selectElement=Convert.ToInt32( Console.ReadLine());
    
                Func1(intArr,selectElement);
    
                Console.Read();
            }
    
            /// <summary>
            /// 输出重整序列的数组
            /// </summary>
            /// <param name="arr"></param>
            /// <param name="selectElement"></param>
            public static void Func1(int[] arr, int selectElement)
            {
                int index = -1;
                Swap(arr, 0, arr.Length - 1);
                for (int i = 0; i < arr.Length; i++)
                {
                    if (arr[i] == selectElement)
                        index = i;
                }
    
                Swap(arr,0,index-1); 
                Swap(arr, index, arr.Length - 1);
                
                for (int i = 0; i < arr.Length; i++)
                {
                    Console.WriteLine(arr[i].ToString());
                }
            }
            
            /// <summary>
            /// 倒置数组中某段的值
            /// </summary>
            /// <param name="arr"></param>
            /// <param name="beginIndex"></param>
            /// <param name="endIndex"></param>
            public static void Swap(int[] arr, int beginIndex, int endIndex)
            {
                int temp = -1;
                int swapTimes = -1;
    
                if ((endIndex - beginIndex + 1) % 2 == 0)
                    swapTimes = (endIndex - beginIndex + 1) / 2;
                else
                    swapTimes = (endIndex - beginIndex) / 2;
    
                for (int i = 0; i < swapTimes; i++)
                {
                    temp = arr[beginIndex + i];
                    arr[beginIndex + i] = arr[endIndex - i];
                    arr[endIndex - i] = temp;
                }
            }
        }
    }
  • 相关阅读:
    UML类图图示样例
    在WSSv3中通过Javascript和创建Feature扩展站点的动作菜单
    LINQ之Select各种操作
    TroubleShoot: SharePoint工作流不能自动启动
    TroubleShoot:页面上WebPart显示错误
    ECMAScript对列表项的增删改查
    隐藏SharePoint查看所有内容及回收站
    Windows2000计划任务对机器进行重新启动
    CF576E Painting Edges
    CF1491H Yuezheng Ling and Dynamic Tree
  • 原文地址:https://www.cnblogs.com/maomiyouai/p/2972591.html
Copyright © 2011-2022 走看看