zoukankan      html  css  js  c++  java
  • 打电话-一个很神奇结构

    打电话

    ​ 一个合唱队共有15人,暑假期间有一个紧急演出,老师需要尽快通知到每一个同学,如果用打电话的方式,每分钟通知1人,请帮老师设计一个打电话的方案。

    1. 老师依次给每个学生打电话

    老师依次给所有学生拨打电话。耗时15分钟

    2. 老师让同学帮忙

    老师依次给同学们拨打电话太耗时了。改变策略。

    老师拨打3个学生电话

    1. 10:00 老师拨打第一通
      1. 10:01 学生1拨打第一通
      2. 10:02 学生1拨打第二通
      3. 10:03 学生1拨打第二通
      4. 10:04 学生1拨打第二通
    2. 10:01 老师拨打第二通
      1. 10:02 学生2拨打第一通
      2. 10:03 学生2拨打第二通
      3. 10:04 学生2拨打第三通
      4. 10:05 学生2拨打第四通
    3. 10:02 老师拨打第三通
      1. 10:03 学生3拨打第一通
      2. 10:04 学生3拨打第二通
      3. 10:05 学生3拨打第三通
      4. 10:06 学生3拨打第四通

    老师多拨打一个电话会节约时间吗?

    老师拨打4个学生电话

    1. 10:00 老师拨打第一通
      1. 10:01 学生1拨打第一通
      2. 10:02 学生1拨打第二通
      3. 10:03 学生1拨打第二通
    2. 10:01 老师拨打第二通
      1. 10:02 学生2拨打第一通
      2. 10:03 学生2拨打第二通
      3. 10:04 学生2拨打第三通
    3. 10:02 老师拨打第三通
      1. 10:03 学生3拨打第一通
      2. 10:04 学生3拨打第二通
      3. 10:05 学生3拨打第三通
    4. 10:03 老师拨打第四通
      1. 10:04 学生4拨打第一通
      2. 10:05 学生4拨打第二通
      3. 10:06 学生4拨打第三通

    类似老师拨打5个学生电话然后每个学生在转发2个同学耗时也是一样的。还有办法继续加速吗?

    3. 老师和同学们讨论出了新的模式

    老师和同学只要有空闲就通知其他同学

    总结

    其实第二种和第三种确实能减少通知时间,但是却隐藏了一个问题就是到底哪些同学是没有接到通知的。

    这个问题如果是软件项目中,那么在接完电话的同学(处理完任务)在通知其他同学之前要先确认哪些同学没有收到通知(去中间件查询一下没有接收到通知的同学)

    原文地址: https://github.com/malin1994515/my-learn/blob/master/0.Java-Learn/00/打电话.md

  • 相关阅读:
    CentOS 6.5 伪分布式 安装 hadoop 2.6.0
    单例模式的思想简介
    最有二叉树 哈夫曼树
    二叉树2
    二叉树1
    栈与队列
    线性表
    字符串模式匹配KMP算法
    数据结构(四) 查找 排序
    数据结构(三) 图
  • 原文地址:https://www.cnblogs.com/linma/p/13290164.html
Copyright © 2011-2022 走看看