有興趣的朋友 自己跑跑看,很有趣!
三個方法都跑一百萬次~結果是 :
自己開char[] > StringBuilder > ArrayReverse
82 > 107 > 117 (毫秒)
範例 :
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Diagnostics;//引用System.Diagnostics命名空間
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- Console.Write("請輸入一串要倒轉的字串 : ");
- string str = Console.ReadLine();
- //建立時間計時物件
- Stopwatch sw = new Stopwatch();
- //先歸零一下
- sw.Reset();
- //開始測量
- sw = Stopwatch.StartNew();
- ///要執行的程式放這
- for (int i = 0; i < 1000000; i++)
- {
- string rev = reverse(str);
- }
- ///要執行的程式放這
- //結束
- sw.Stop();
- //Stopwatch 有三種屬性可以看時間 Eclapsed milliseconds tickts
- TimeSpan time = sw.Elapsed;
- Console.WriteLine("運轉一百萬次消耗時間 : {0:g}", time);
- long ST = sw.ElapsedMilliseconds;
- Console.WriteLine("運轉一百萬次消耗時間 : {0} 毫秒", ST);
- }
- public static string reverse(string str)
- {
- if (string.IsNullOrEmpty(str))
- {
- throw new ArgumentException("參數不合法");
- }
- ///方法一 使用char[]
- //char[] temp = new Char[str.Length];
- //for (int i = 0; i < str.Length; i++)
- //{
- // temp[i] = str[str.Length - i - 1];
- //}
- //return new string(temp);
- //return string.Join("", temp);
- //方法二 使用stringbuilder
- //StringBuilder sb = new StringBuilder(str.Length);
- //for (int i = str.Length - 1; i >= 0; i--)
- //{
- // sb.Append(str[i]);
- //}
- //return sb.ToString();
- ///方法三 使用.net 函式庫
- ///
- char[] temp = str.ToCharArray();
- Array.Reverse(temp);
- return new string(temp);
- }
- }
- }
沒有留言:
張貼留言