算法和生活相依相存

    近日,老师带着学习算法,从最基础的,也是很重要的选择,交换排序开始学起,突然觉得算法的确妙不可言,而且它和生活也是可分的。排序算法有一大堆,先从选择和交换开始吧。

    生活

    说算法,先从生活说起。前日去饭店吃饭,很平时没有什么两样,挑着自己喜欢的菜品。最后到了付账的时候,前面有个大哥,那叫一个能吃,能数满了指头,足足要了将近10份菜。作为程序员的重头戏来了。我本想这算账应该慢了,毕竟菜挺多的,得一个一个算。想着的同时,那算账的大姐,毫不含糊,之见把几份菜左一摞,右一摞,不同菜价的菜都放到一块了。而不是我所想的把一个一个菜价往上加。噼里啪啦的就把菜的账结了。心里难过啊,这么简单的事情咋就想不到呢,要是我在这结账的话,老板肯定炒了咱的。
    假设这个算账是代码的话,大姐的算法肯定要比我的快多了。不可否认,有一定因素是经验的问题,但是这个事情动动脑子就能够优化的啊。看来生活中的事是可以想象成代码的啊。


    代码

    毫无疑问还得回归咱的代码。先从交换和选择来说吧。在对这块代码学习的时候,老师提出了三角形的概念。今天算是对这个三角形理解了。下面是对小编对选择和交换的理解
    
     无论选择还是交换也好,都是对一堆数来进行排序,准确的说是对无序数据排序。看对10个数进行排序,下标从0开始
选择排序
for (i=0;i<9;i++)
{
<span style="white-space:pre">	</span>for (j=i+1;j<=9;j++)                          //内循环的初始变量值越来越大,无序区长度越来越短
<span style="white-space:pre">	</span>{
<span style="white-space:pre">		</span>if(box[i]<box[j])
<span style="white-space:pre">		</span>{
<span style="white-space:pre">			</span>var tmp =box[i];
<span style="white-space:pre">			</span>box[i]=box[j];
<span style="white-space:pre">			</span>box[j]=tmp;
<span style="white-space:pre">		</span>}
<span style="white-space:pre">	</span>}
}
交换排序(冒泡)
for(i=0;i<9;i++)
{
<span style="white-space:pre">	</span>for (j=0;j<=9-i;j++)                            //无序区长度越来越短,末尾变量的值越来越小
<span style="white-space:pre">	</span>{
<span style="white-space:pre">		</span>if (box2[j]<box2[(j+1)])
<span style="white-space:pre">		</span>{
<span style="white-space:pre">			</span>var tmp =box2[j];
<span style="white-space:pre">			</span>box2[j]=box2[(j+1)];
<span style="white-space:pre">			</span>box2[(j+1)]=tmp;
<span style="white-space:pre">		</span>}
<span style="white-space:pre">	</span>}
}

    深刻的三角形

     
    


    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 28
    评论
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值