|
楼主 |
发表于 2008-11-1 18:52
|
显示全部楼层
回复 火星 的帖子
似乎你的计算有问题...这个应该是(N-1)项,那么和其他人的公式一样,(n-1)n/2.
那我现在举个例子吧,
比如说5个无法直接看出大小的数,元素编号A,B,C,D,E.
AB比较得到有序数组1{A,B}(不妨设A<B),须一次比较.
同理得{D,E}有序数组,须一次,将F元素插入该数组,毫无疑问,至少需要两次比较.得数组2{D,E,F}且设D<E<F
得有序数组{A,B}与{D,E,F},已比较4次.
现在把数组1插入数组2.
A与E先比较,
若A>E,则A与F比较,
若F<A,则得有序数组{D,E,F,A,B},累计所有比较次数,共 6 次.
若F>A,则B与F比较,得有序数组{D,E,A,F,B}或{D,E,A,B,F},须 7 次比较.
同理得A<E的情况.
最终得到结论,5个数可以用7次比较得到有序的序列.
但大家从提供的公式来看5*(5-1)/2=10≠7,
说明诸位的理想排序方案还是可以优化的.
[ 本帖最后由 liota 于 2008-11-1 18:55 编辑 ] |
|