2的指数次方算法对比

1.  算法选择:

    1)使用Math.Power算法

    2)按位左移

    3)查询预生成字典

 

private const int TenMillion = 10000 * 1000;
        private static Dictionary<int,int> Power2Dict=new Dictionary<int, int>()
        {
            {1,2},//2^1
            {2,4},//2^2
            {3,8},//2^3
            {4,16},
            {5,32},
            {6,64},
            {7,128},
            {8,256},
            {9,512},
            {10,1024},
            {11,2048},
        }; 
        public static void Excute()
        {
            var ms = ActionHelper.ComputeActionCostMilliseconds(() =>
            {
                for (int j = 0; j < TenMillion; j++)
                {
                    int a = 9;
                    var i = (int)Math.Pow(2, a);
                }
            });
            Console.WriteLine("使用Math.Power算法在大循环所消耗时间为:{0}ms", ms);

            ms = ActionHelper.ComputeActionCostMilliseconds(() =>
            {
                for (int j = 0; j < TenMillion; j++)
                {
                    int a = 9;
                    var i2 = 1 << a;
                }
            });
            Console.WriteLine("使用移位算法在大循环所消耗时间为:{0}ms", ms);

            ms = ActionHelper.ComputeActionCostMilliseconds(() =>
            {
                for (int j = 0; j < TenMillion; j++)
                {
                    int a = 9;
                    var i2 = Power2Dict[a];
                }
            });
            Console.WriteLine("使用预处理字典算法在大循环所消耗时间为:{0}ms", ms);

 

 

 2.结果

 

转载于:https://www.cnblogs.com/zhshlimi/p/8473330.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值