擅长:python、mysql、java
<p>为什么要把事情弄得这么复杂?<br/>
为什么不将x和f(x)值存储在dict中,并对dict键进行排序:</p>
<pre class="lang-py prettyprint-override"><code>data = {}
# every time you get a new x and f(x) value, store it in the dict:
data[x] = f(x)
# then when you want to plot:
xvals = sorted(data.keys())
yvals = [data[x] for x in xvals]
# Now you have a x values and y values, sorted by x value, so just:
plot(xvals,yvals)
</code></pre>
<p>这样的东西对你有用吗</p>
<p>另外,顺便说一句:作为一般规则,您需要性能更好的东西是可以理解的,但是相对于您的算法需要10分钟到1小时才能收敛到f(x)的每个值,每当出现一个新值时,即使使用O(n*ln(n))排序,也会使用所有现有结果,将比新值排序的等待时间快很多。(Python sorted可以在不到2.5毫秒的时间内对10000个数字进行排序。关键是,与10分钟的算法相比,再减少0.5到1.0毫秒不会对整个过程产生任何影响)</p>