注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

追寻梦想的路上

人生如代码,代码如人生

 
 
 

日志

 
 
 
 

关于if的一个小排序  

2014-03-30 10:17:47|  分类: 技术篇 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
c语言课上的一个小例子,只让使用if语句将四个数按照从大到小进行排序。
平时的思维,无论用冒泡排序还是正常的顺序排序,自己只能想到用6个if来实现。
if (a<b)
{t=a;a=b;b=t;}
if (a<c)
{t=a;a=c;c=t;}
if(a<d)
{t=a;a=d;d=t;}
if(b<c)
{t=b;b=c;c=t;}
if(b<d)
{t=b;b=d;d=t;}
if(c<d)
{t=c;c=d;d=t;}
老师却推荐了一种方法,只用到5个if即可:
前两个if:a vs b     c vs d  先实现前两个比较,后两个比较
中间两个if:a vs c      b vs d  两个较大的比较,两个较小的比较,比完之后就可以将最大的放到 最前面,最小的放到最后;这是这次比较的关键环节。
最后一个if:b vs c 确定中间两个的大小。
通过这种方法,终于明白篮球比赛的规则了。四个队比赛,先分成两组,两次比完后可以确定角逐出争夺第一名的两队和争夺第三名的两队。然后再进行两次比赛后就排出了名次,可是很少有比赛让第二名与第三名再进行一次比赛。可能是为了节省时间吧。
原来算法 早就存在于我们的生活当中,只是我们从来不把生活与学习相结合!!
  评论这张
 
阅读(54)| 评论(9)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017