5个数排序,最少比较几次?怎么做?

gangzx 2001-12-27 02:42:37
如题
...全文
874 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
gangzx 2002-01-04
  • 打赏
  • 举报
回复
给分
gangzx 2002-01-04
  • 打赏
  • 举报
回复
ok,i know
mathe 2002-01-03
  • 打赏
  • 举报
回复
使用堆排序,第一次4次排序可以求出最大值
以后每一次需要再添加一次比较再求出余下数中的最值,
由于余下还有4个数,还需要3次。

a
/ / b
/ / a c b
/ \ / a e c d
krakan 2001-12-31
  • 打赏
  • 举报
回复
可以用快速排序
gangzx 2001-12-30
  • 打赏
  • 举报
回复
to netpaladin(好男儿志在四方!) :
不错,答案是7次,怎么做的?说说好嘛??
gangzx 2001-12-30
  • 打赏
  • 举报
回复
to netpaladin(好男儿志在四方!) :
不错,答案是7次,怎么做的?说说好嘛??
gangzx 2001-12-30
  • 打赏
  • 举报
回复
to netpaladin(好男儿志在四方!) :
不错,答案是7次,怎么做的?说说好嘛??
netpaladin 2001-12-30
  • 打赏
  • 举报
回复
7次;这是结论

melice 2001-12-29
  • 打赏
  • 举报
回复
应该是4次,大小关系可以从4次比较中推出的。
gangzx 2001-12-28
  • 打赏
  • 举报
回复

******************************************
* 题目是指5个任意数,而且初始位置未排序。*
******************************************
minkerui 2001-12-28
  • 打赏
  • 举报
回复
快速排序5次。
注意:并不是所有的情况快速排序都会比冒泡法快。只有当N越大时优势才越明显
homqom 2001-12-28
  • 打赏
  • 举报
回复
可用快速排序的方法!
seagle 2001-12-28
  • 打赏
  • 举报
回复
用折半查找排序好象最少,大概是4次吧
对否??
王集鹄 2001-12-27
  • 打赏
  • 举报
回复
嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻
嘻嘻嘻发错贴了嘻嘻嘻嘻
嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻
王集鹄 2001-12-27
  • 打赏
  • 举报
回复
{$APPTYPE CONSOLE}

program CalcApp;

function ZsList(mStr: string): string;
procedure pZsList(mLeft, mRight: string);
var
I, L: Integer;
Temp: string;
begin
L := Length(mLeft);
if mLeft = '' then Writeln(mRight);
for I := 1 to L do begin
Temp := mLeft;
Delete(Temp, I, 1);
pZsList(Temp, Concat(mRight, mLeft[I]));
end;
end;
begin
pZsList(mStr, '');
end;

begin
ZsList('12345');
Readln;
end.

chijiao 2001-12-27
  • 打赏
  • 举报
回复
怎么显示成那样了?就是把它看成有5个接点的最优二叉树,看她能有几个根接点。答案是4
chijiao 2001-12-27
  • 打赏
  • 举报
回复
(4)结果
/ (3) 5
/ (1) (2)
/\ / 1 2 3 4
skyfine 2001-12-27
  • 打赏
  • 举报
回复
4次?
怎么得出来的。

我得到的是6次。
leojay 2001-12-27
  • 打赏
  • 举报
回复
5个数已经按顺序排好的话,就是4次。
leojay 2001-12-27
  • 打赏
  • 举报
回复
4次。

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧