欢迎讨论,int a,b,c 按升序排列最高效算法!

whizstorm 2005-01-22 03:46:14
RT
...全文
252 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wasltone 2005-01-23
  • 打赏
  • 举报
回复
楼上的。。
ASM,真是刷滑头。。
要不我给个机器码?

0110001001010 010010100100 0100 0010010100100010 01 00101 01
001010010 00101010010010 001001000100 010010101010 00 10 0101
10010100 0010010
..

^_^
nbb 2005-01-22
  • 打赏
  • 举报
回复
这个是效率最高的:

__asm
{
mov eax,a
mov ebx,b
mov ecx,c

cmp eax,ebx
jle g1
xchg eax,ebx

: g1
cmp ebx,ecx
jle exit

xchg ebx,ecx
cmp eax,ebx
jle exit
xchg eax,ebx

: exit
}
Lute 2005-01-22
  • 打赏
  • 举报
回复
对三个数最高效的算法是直接比较法,其实就是个决策树,效率是比较型排序算法的最优情况
O(nlogn),不过就和下面程序一样,判断太多了:
void Sort3Num(int a, int b, int c)
{
if(a<b)
{
if(b<=c)
cout<<a<<b<<c<<endl;
else if(b>=c && c>=a)
cout<<a<<c<<b<<endl;
else if(c<=a)
cout<<c<<a<<<<b<<endl;

}

else
{
if(a<=c)
cout<<b<<a<<c<<endl;
else if(a>=c && c>=b)
cout<<b<<c<<a<<endl;
else if(c<=b)
cout<<c<<b<<a<<endl;
}
}

To jsunnygirl(太阳的女儿):快排的效率在最坏情况下和普通冒泡差不多,效率比较稳定的是归并排序:)
pcboyxhy 2005-01-22
  • 打赏
  • 举报
回复
这个好像算法发挥的余地不是很大
jsunnygirl 2005-01-22
  • 打赏
  • 举报
回复

快速排序效率最高吧,算法是不是和待排个数无关啊
jameswwb 2005-01-22
  • 打赏
  • 举报
回复
if( a > b && !( c > b ) )
cout<< a << b << c;
这个是升序排列???有点不明白
goodluckyxl 2005-01-22
  • 打赏
  • 举报
回复
列举完全效率最高
if( a > b && !( c > b ) )
cout<< a << b << c;
whizstorm 2005-01-22
  • 打赏
  • 举报
回复
冒泡
int temp;
if(a>b)
{
temp = a;
a = b;
b = temp:
}
if(a>c)
{
temp = a;
a = c;
c = temp;
}
if(b>c)
{
temp = b;
b = c;
c = temp;
}
justoday 2005-01-22
  • 打赏
  • 举报
回复
就三个数吗?

yjh1982 2005-01-22
  • 打赏
  • 举报
回复
为了作业贴的鉴定,楼主得先给出自己的算法

64,266

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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