【发布时间】:2013-06-19 17:23:03
【问题描述】:
给定索引5,数组大小为10,返回这个数组:[5, 4, 6, 3, 7, 2, 8, 1, 9, 0]
代码:
function middleOutIterator(index, arraySize) {
var distances = [];
for (var i = 0; i < arraySize; i++) {
distances[i] = [ i, Math.abs(index - i) ];
}
distances.sort(sort);
for (var i = 0; i < distances.length; i++) {
distances[i] = distances[i][0];
}
return distances;
}
function sort(a, b) {
return a[1] > b[1];
}
基本上,你传入一个起始索引,它会朝任一方向向外迭代。
这不是一个真正的迭代器,它只是创建一个索引数组,所以我给它起的名字有点用词不当,但是你怎么称呼这种迭代/排序?
我不打算优化此功能,因为它不在关键领域,当然也不是瓶颈,但我有兴趣阅读有关它和任何相关算法的更多信息。
【问题讨论】:
-
f(x) = n + xsin(x)? -
我从来没有想过,有些人(读作:你)竟然能破解出这样的方程式,这让我很惊讶!这就是所谓的泰勒级数吗?
-
xsinx + C只是看起来像这样的整个正弦函数类的一般形式。泰勒展开式完全不同。 -
大声笑,你可以看到我的数学技能现在如何......
标签: javascript iterator