打印一系列数字优化第 2 部分 [关闭]
Posted
技术标签:
【中文标题】打印一系列数字优化第 2 部分 [关闭]【英文标题】:print a series of numbers optimization part 2 [closed] 【发布时间】:2011-05-03 01:13:18 【问题描述】:早些时候我发布了第 1 部分并得到了一些有趣的回应
print a series of numbers optimization part 1
这是另一种方法,您可以让程序在屏幕上打印一系列重复的数字,这里的目标是制作最有效/最快的算法
int series[] = [2,3,4,5,6,7,8,9,1]
int i = 9;
while(true)
print(series[i])
i = series[i] - 1;
当然忽略实际打印数字所产生的任何额外开销,因为这不是问题的目的
无论你做什么解决方案,都需要一个布尔条件语句(当为真),所以你也可以忽略它
此解决方案为 11 个 int 变量使用内存,但除此之外,它仅执行一次简单计算和每次迭代的一次变量分配。
那么这是解决无限数序列问题最省时的方法吗?
【问题讨论】:
print a series of numbers optimization part 1的可能重复 @John 这显然是一个后续问题...... 它会造成一些令人讨厌的溢出,因为数组有 9 个元素长,并且您指的是位置 9 的索引,而实际上最后一个位于位置 8。 这些愚蠢的问题有什么意义?我可以想到一百万个微不足道的问题,并询问如何对同样微不足道的解决方案进行微优化。 微优化此代码毫无意义。大部分时间将花费在 I/O 上,以便将这些内容输出到屏幕上。 【参考方案1】:我会说这不是最有效的方法。
在寻址数组时涉及乘法。本质上是
destinationAddress = baseAddressOfArray + indexRequested * sizeof(elementOfArray)
我认为最有效的方法是缓存一次迭代的字符串,然后一遍又一遍地吐出该字符串。我不了解我的确切 C++ 语法,可能是这样的
string s = "123456789";
while(true)
print(s);
【讨论】:
我认为这不是 OP 的意思。 @Dani 说实话,很难准确说出 OP 的意思。以上是关于打印一系列数字优化第 2 部分 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
第19天SQL进阶-查询优化- performance_schema系列一:了解performance_schema(SQL 小虚竹)
第19天SQL进阶-查询优化- performance_schema系列一:了解performance_schema(SQL 小虚竹)
第19天SQL进阶-查询优化- performance_schema系列一:了解performance_schema(SQL 小虚竹)