详解三种C#实现数组反转方式

软件编程 C#教程 分类:[default] 更新日期: 2017-04-03
本篇文章主要介绍了详解三种C#实现数组反转方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

今天上班中午吃饱之后、逛博客溜达看到一道题:数组反转  晚上回家洗完澡没事情做,就自己练习一把。

public static class ArrayReserve 
  { 
    /// <summary> 
    /// 使用 Array.Reverse(Arrar) 反转全部 
    /// </summary> 
    /// <param name="arr"></param> 
    public static void ReverseDemo1(int[] arr) 
    { 
      Console.WriteLine("使用 Array.Reverse(Arrar) 反转全部"); 
      Array.Reverse(arr); 
    } 
    /// <summary> 
    /// 使用 Array.Reverse(Array arr,int begin,int end),反转指定部分 
    /// </summary> 
    /// <param name="arr"></param> 
    /// <param name="begin"></param> 
    /// <param name="end"></param> 
    public static void ReverseDemo2(int[] arr, int begin, int end) 
    { 
      Console.WriteLine("使用 Array.Reverse(Array arr,int begin,int end),反转指定部分"); 
      Array.Reverse(arr, begin, end); 
    } 
    /// <summary> 
    /// 使用自定义方法实现反转 
    /// </summary> 
    /// <param name="arr"></param> 
    /// <param name="begin"></param> 
    /// <param name="end"></param> 
    public static void ReverseDemo3(int[] arr, int begin, int end) 
    { 
      Console.WriteLine("使用自定义方法实现反转"); 
      if(null==arr) 
      { 
        throw new ArgumentNullException("arr", "Array不能为null"); 
      } 
      if(begin<=0 || end <=0) 
      { 
        throw new ArgumentOutOfRangeException("开始或结束索引没有正确设置"); 
      } 
      if(end>arr.Length) 
      { 
        throw new ArgumentOutOfRangeException("end", "结束索引超出数组长度"); 
      } 
      while(begin<end) 
      { 
        int temp = arr[end]; 
        arr[end] = arr[begin]; 
        arr[begin] = temp; 
        begin++; 
        end--; 
      } 
    } 
  /// <summary> 
    /// 使用自定义方法实现反转(使用栈《后进先出》) 
    /// </summary> 
    /// <param name="arr"></param> 
    /// <param name="begin"></param> 
    /// <param name="end"></param> 
    public static void ReverseDemo4(int[] arr, int begin, int end) 
    { 
      Console.WriteLine("使用自定义方法实现反转(使用栈《后进先出》)"); 
      if (null == arr) 
      { 
        throw new ArgumentNullException("arr", "Array不能为null"); 
      } 
      if (begin <= 0 || end <= 0) 
      { 
        throw new ArgumentOutOfRangeException("开始或结束索引没有正确设置"); 
      } 
      if (end > arr.Length) 
      { 
        throw new ArgumentOutOfRangeException("end", "结束索引超出数组长度"); 
      } 
      Stack<int> intStack = new Stack<int>(); 
      int tempBegin = begin; 
      for(;begin<=end;begin++) 
      { 
        intStack.Push(arr[begin]); 
      } 
      for (; tempBegin <= end; tempBegin++) 
      { 
        arr[tempBegin] = intStack.Pop(); 
      } 
    } 
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


> 本站内容系网友提交或本网编辑转载,其目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请及时与本网联系,我们将在第一时间删除内容!

相关文章
  • Yii2rbac权限控制之rule教程详解
    Yii2rbac权限控制之rule教程详解
    这篇文章主要介绍了Yii2 rbac权限控制之rule教程详解的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下在我们之前Yii2搭建后台并实现rbac权限控制完整实例教程中,不知道你曾经疑惑过没有一个问题,rule表是做什么的,为什么在整个过程中我们都没有涉及到这张表? 相信我不说,部分人也都会去尝试,或百度或google,到头来也会竹篮打水,这部 ...
  • 详解表单验证正则表达式实例(推荐)
    这篇文章主要介绍了详解表单验证正则表达式实例推荐的相关资料,非常不错,具有参考借鉴价值,特此分享到平台供大家参考验证:!reg.test(value) 邮箱: 代码如下:reg = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/i; 不包含中文: 代码如下:r ...
  • 利用ASP.NETMVC+Bootstrap搭建个人博客之打造清新分页Helper三
    利用ASP.NETMVC+Bootstrap搭建个人博客之打造清新分页Helper三
    这篇文章主要介绍了利用ASP.NET MVC+Bootstrap搭建个人博客之打造清新分页Helper三的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下0. 没有找到一款中意的分页插件,又不想使用现成的(丑到爆),所以自己动手造一个吧 先看下效果(其实也不咋滴...): 我的小站地址:我的Bootstrap小站; PS:(问博客园:为什么老是删我 ...
  • Flex输出文件到本地的两种方法
    flex中输出文件到本地有两种方法分别是File和FielRefreence,下面的实例代码,大家可以看看在flex中输出文件到本地目前我用到两种方法,分别是File和FielRefreence 例子: var exportString:String = "这就是一个测试" 1.File输出 代码如下:var ff:File = File ...
  • Swift中内置的集合类型学习笔记
    Swift中内置的集合类型学习笔记
    Swift中自带数组.set.字典三大集合类型,这里将学习过程中的基础的Swift中内置的集合类型学习笔记进行整理,需要的朋友可以参考下一.引言 Swift中提供了3种集合类型,Array数据类型,Set集合类型,Dictionary字典类型.Array用于存放一组有序的数据,数据角标从0开始一次递增:Set用于存放一组无序的数据,数据不可以重复:Dicti ...
  • php项目开发中用到的快速排序算法分析
    这篇文章主要介绍了php项目开发中用到的快速排序算法,结合实例形式详细分析了php快速排序的原理与使用方法,需要的朋友可以参考下本文实例讲述了php项目开发中用到的快速排序算法.分享给大家供大家参考,具体如下: 实际上在,做web开发,比较少遇到使用一些算法之类的,毕竟不是做搜索引擎,也不是写底层(比如写个类似于mysql这样的数据库,里面需要自己实现排序算 ...
猜你喜欢