火元素 发表于 2005-1-20 17:47

一个简单问题,觉得书上写得有问题。

<P>是一个插入排序的小程序:</P>
<P>public void insertionsort(Object[] data) {</P>
<P>    Comparable tmp;</P>
<P>    int i, j;</P>
<P>    for(i = 1; i &lt; data.length; i++) {</P>
<P>       tmp = (Comparable)data;</P>
<P>       for(j = i;  j &gt; 0 &amp;&amp; tmp.comparaTo(data) &lt;  0; j--)</P>
<P>            data = data;</P>
<P>       data = tmp;</P>
<P>    }</P>
<P>}</P>
<P>书上说移动次数有(n*n + 5n -6) / 4次。感觉有问题。</P>

ilikenba 发表于 2005-1-20 21:41

<P>如果说这样的一个步骤data = data;定义为一个移动的话;最坏的情况下应该是移动n*(n-1)/2次吧!</P>

devil2k 发表于 2005-6-15 17:36

不知道
页: [1]
查看完整版本: 一个简单问题,觉得书上写得有问题。