首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

#算法#行列和链表无处不在

2012-12-21 
#算法#队列和链表无处不在请查看原文:?http://www.ibaiyang.org/2012/11/20/queue-list/?在我读严蔚敏版的

#算法#队列和链表无处不在

请查看原文:

?

http://www.ibaiyang.org/2012/11/20/queue-list/

?

#算法#行列和链表无处不在

在我读严蔚敏版的《数据结构》的时候,看到其中一个例子,让我对数据结构佩服的五体投地,让人把如此的一个问题分析的这么透彻,十分钦佩。也让我明白了一个道理,在设计好的算法之前,一定要设计好的数据结构,当你设计了好的数据结构之后,反而会为你写算法有很大的帮助,这是我深有体会的。

在这里,就将在重复一下这个例子吧,方便以后借鉴,这个例子主要是模拟离散事件的例子。

引言

在日常生活中,我们经常会遇到各种排队的事情,比如乘地铁,去食堂就餐。我们就以去银行办理业务为例,在我们走进银行之后,我们需要到窗口办理自己的业务。

现在需要编制一个软件,模拟银行的这种业务活动并计算一天客户中在银行逗留的平均时间。

在这里,需要满足以下条件:

  • 进来的客户是随即的;
  • 进来之后的客户选择较短的队列排队;

    为了计算客户在一天当中的平均逗留时间,需要知道每个客户在银行的逗留时间,然后其每个客户逗留时间之和除以总人数既是平均逗留时间。在通常情况下,我们知道客户到达和离开银行的时间,自然知道每个客户在银行的逗留时间。所以,我们将客户达到离开银行这二个时刻发生的事情称为“事件”,整个模拟程序是按照事件发生的先后顺序来进行处理,这样一种模拟程序称作“事件驱动模拟”。

    实现

    以下描述正是上述银行客户的离散事件驱动模拟程序:

    }

    为什么我说这是事件驱动模型呢,因为我觉得,当生产出来了资源,即v不为空时,自然会唤醒consume线程去消费它,相反,当v为空时,又会唤醒produce生产资源,其中的唤醒类似驱动原理。

    【注】如有理解偏差,实属能力问题,本人还在努力之中,共同进步。

    -----------------打造高质量的文章 更多关注 把酒泯恩仇---------------

    为了打造高质量的文章,请??推荐? 一下吧。。。。谢谢了,请关注我后续的文章,会更精彩哦

    请关注sina微博:http://weibo.com/baiyang26

    把酒泯恩仇官方博客:http://www.ibaiyang.org?【推荐用google reader订阅】

    把酒泯恩仇官方豆瓣:http://www.douban.com/people/baiyang26/

    如果您想转载本博客,请注明出处

    如果您对本文有意见或者建议,欢迎留言

热点排行