>是一个插入排序的小程序:</P>* E8 X, t6 j% h' I3 Z" }# u% E
>public void insertionsort(Object[] data) {</P> z* U' c. }# }8 Z' w2 i% U1 Q
> Comparable tmp;</P>6 u0 v, L4 _2 i, R/ \& i
> int i, j;</P>5 P# Z: _1 I1 G9 Q8 E
> for(i = 1; i < data.length; i++) {</P>
> tmp = (Comparable)data;</P>! j% ]) m+ J- D; _! B5 K
> for(j = i; j > 0 && tmp.comparaTo(data[j - 1]) < 0; j--)</P>
> data[j] = data[j -1];</P>3 m! H: T7 p# `; ]$ f
> data[j] = tmp;</P>" f0 }* `0 \1 z$ q
> }</P>. c) v% ^- W* k n! S6 U
>}</P>
>书上说移动次数有(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 |