Console.WriteLine("Hello, World!"); var list = new double[100000000]; for(int i = 0; i < 100000000; i++) { list[i] = i; } Console.WriteLine("Func1结果:"+ Func1(100000000, 1, list)); Console.WriteLine("Func2结果:" + Func2(100000000, 1, list)); //a1*x^1 + a2*x2+a3*x^3+....+an*x^n static double Func1(int n,double x, double[] aList) { Stopwatch sw = new Stopwatch(); sw.Start(); double p = aList[0]; for (int i = 1; i <= n-1 ; i++) { p += (aList[i] * Math.Pow(x,i)); } sw.Stop(); Console.WriteLine("func1 耗时" + sw.Elapsed.TotalSeconds); return p; } //等价于a0 + x(a1 + x(a2 + x(a3 + x(...+x(an - 1 + x(an))))) static double Func2(int n, double x, double[] aList) { Stopwatch sw =new Stopwatch(); sw.Start(); double p = aList[n-1]; for (int i = n - 1; i>0; i--) { p = (p*x + aList[i-1]); } sw.Stop(); Console.WriteLine("func2 耗时"+ sw.Elapsed.TotalSeconds); return p; }
如上代码,采用两种不同的算法计算多项式的值,差异如下:第一种方法耗时是第二种方法耗时的五倍左右,并且会随着数据量增大而增大
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下