0%

对5个数进行排序最少需要多少次

对五个数排序最少需要7次.

今个儿,算法老师上课给我们出的一道题,老师只是告诉我们7次,也没说具体怎么个过程.
上网查了查也是看懂了吧
本文介绍一个对5个数进行排序的方法,仅使用7次比较。假设要排序的数为a,b,c,d,e。

首先将a,b进行比较,假设结果为a<b,再将c,d进行比较,假设结果为c<d;然后将两组数的较大者进行比较(即比较b,d),假设结果为b<d,于是就有下面的关系,箭头的关系表示“<”,即”小于”,至此,已经进行了三次比较。

即:a<b<d,c<d

现在将e插入到{a,b,d}的适当位置,采用二分查找法寻找查找位置时,只需要两次比较——先同b比较,然后再同a或d比较。将e插入到{a,b,d}时,一共有四种情况

e<a<b<d,
a<e<b<d,
a<b<e<d,
a<b<d<e,
c<d

在这四中情况中,要将c插入到由[abcd]组成的序列中最多只需要两次比较。同样使用二分法寻找插入位置。以第一种情况为例:c首先同a比较,如果大于a,再同b比较,如果大于b,则不会再同d比较,因为我们在之前已经知道c<d。

所以 3 + 2 + 2 = 7,一共是7次比较

Thank you for your support