>是一个插入排序的小程序:</P>
>public void insertionsort(Object[] data) {</P>7 o- r+ }1 _ t( z
> Comparable tmp;</P>
> int i, j;</P>! ^% M0 T, z( V+ R3 ^; b; F
> for(i = 1; i < data.length; i++) {</P>
> tmp = (Comparable)data;</P>
> for(j = i; j > 0 && tmp.comparaTo(data[j - 1]) < 0; j--)</P>7 R* ]8 y! }' D
> data[j] = data[j -1];</P>* J. ]% q+ O6 u; |: p5 O k
> data[j] = tmp;</P>
> }</P>
>}</P>$ j4 M& v$ a& w0 I V/ Y
>书上说移动次数有(n*n + 5n -6) / 4次。感觉有问题。</P>
>如果说这样的一个步骤data[j] = data[j -1];定义为一个移动的话;最坏的情况下应该是移动n*(n-1)/2次吧!</P>| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |