5个元素排序

一到作业题,原题是:

给定5个元素,给出一种算法确定这5个元的排序,最坏比较次数为7,并证明以比较为基础的算法中7次是最优的。


证明:考虑算法对应的二叉树,5个元素一共有5!=120种排列,能区分这些排列对应的二叉树最小层数为7(2^7=128),故7次是最优的。

算法:想了会没想出来,详见http://blog.csdn.net/fisher_jiang/article/details/2442486.

设他们是abcde,不妨设a<b,c<d,比较bd,不妨设b<d,则有a<b<d,c<d,用二分插入将e插入到abd中,需要2次比较,分为两种情况:1是e<d,则用二分插入将c插入到abe中;2是e>d,则用二分插入将c插入到ab中。总共7次。


看了这个解答恍然大悟——妙哉妙哉!此方法出自于“ H.B.Demuth 于 1956 的博士论文”。不愧为博士,就是牛。

仔细思考了一下,之前一直想的是比较bc,用5次确定4个数的序,然后插入e,共8次。

╮(╯▽╰)╭

看来博士还有很长的路要走。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值