詳解三種C#實(shí)現(xiàn)數(shù)組反轉(zhuǎn)方式
更新時(shí)間:2017年04月11日 16:36:39 作者:11111111221f
本篇文章主要介紹了詳解三種C#實(shí)現(xiàn)數(shù)組反轉(zhuǎn)方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
今天上班中午吃飽之后、逛博客溜達(dá)看到一道題:數(shù)組反轉(zhuǎn) 晚上回家洗完澡沒事情做,就自己練習(xí)一把。
public static class ArrayReserve
{
/// <summary>
/// 使用 Array.Reverse(Arrar) 反轉(zhuǎn)全部
/// </summary>
/// <param name="arr"></param>
public static void ReverseDemo1(int[] arr)
{
Console.WriteLine("使用 Array.Reverse(Arrar) 反轉(zhuǎn)全部");
Array.Reverse(arr);
}
/// <summary>
/// 使用 Array.Reverse(Array arr,int begin,int end),反轉(zhuǎn)指定部分
/// </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),反轉(zhuǎn)指定部分");
Array.Reverse(arr, begin, end);
}
/// <summary>
/// 使用自定義方法實(shí)現(xiàn)反轉(zhuǎn)
/// </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("使用自定義方法實(shí)現(xiàn)反轉(zhuǎn)");
if(null==arr)
{
throw new ArgumentNullException("arr", "Array不能為null");
}
if(begin<=0 || end <=0)
{
throw new ArgumentOutOfRangeException("開始或結(jié)束索引沒有正確設(shè)置");
}
if(end>arr.Length)
{
throw new ArgumentOutOfRangeException("end", "結(jié)束索引超出數(shù)組長度");
}
while(begin<end)
{
int temp = arr[end];
arr[end] = arr[begin];
arr[begin] = temp;
begin++;
end--;
}
}
/// <summary>
/// 使用自定義方法實(shí)現(xiàn)反轉(zhuǎn)(使用?!逗筮M(jìn)先出》)
/// </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("使用自定義方法實(shí)現(xiàn)反轉(zhuǎn)(使用?!逗筮M(jìn)先出》)");
if (null == arr)
{
throw new ArgumentNullException("arr", "Array不能為null");
}
if (begin <= 0 || end <= 0)
{
throw new ArgumentOutOfRangeException("開始或結(jié)束索引沒有正確設(shè)置");
}
if (end > arr.Length)
{
throw new ArgumentOutOfRangeException("end", "結(jié)束索引超出數(shù)組長度");
}
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();
}
}
}
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Visual Studio 2019 清理空行問題(非正則表達(dá)式)
這篇文章主要介紹了Visual Studio 2019 清理空行問題(非正則表達(dá)式),本文通過實(shí)例截圖給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
Unity實(shí)現(xiàn)多平臺(tái)二維碼掃描
這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)多平臺(tái)二維碼掃描,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07
C#實(shí)現(xiàn)DataTable轉(zhuǎn)TXT、CSV文件
這篇文章介紹了C#實(shí)現(xiàn)DataTable轉(zhuǎn)TXT、CSV文件的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04
C# 通過同步和異步實(shí)現(xiàn)優(yōu)化做早餐的時(shí)間
本文以一個(gè)簡單的小例子—如何做一頓早餐及如何優(yōu)化做早餐的時(shí)間來讓大家具體了解一下同步和異步方法的區(qū)別,需要的朋友可以參考一下2021-12-12
C#搜索TreeView子節(jié)點(diǎn),保留父節(jié)點(diǎn)的方法
這篇文章主要介紹了C#搜索TreeView子節(jié)點(diǎn),保留父節(jié)點(diǎn)的方法,實(shí)例分析了C#操作TreeView節(jié)點(diǎn)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09

