Fork me on GitHub
摘要: 现有五个节点:A B C D E以及对应的权值,如何建立一颗huffman树进行哈夫曼编码? 基本思路:每次选取其中最小的两个权值的和作为左右节点,比如0.1+0.15=0.25,再从0.2,0.2,0.25,0.35中选取两个最小的,以此类推。编码的时候,从上往下,如果是左孩子就记为0,右孩子则记 阅读全文
posted @ 2019-11-28 22:57 西西嘛呦 阅读(469) 评论(1) 推荐(0)
摘要: 假设我们现在有这么一个需求: 计算1-200之间各个数的阶乘,并将每个结果保存在map中,最终显示出来,要求使用goroutine。 分析: (1)使用goroutine完成,效率高,但是会出现并发/并行安全问题; (2)不同协程之间如何通信; 对于(1):不同协程之间可能同时对一块内存进行操作,导 阅读全文
posted @ 2019-11-28 20:38 西西嘛呦 阅读(728) 评论(0) 推荐(0)
摘要: 假设我们现在有这么一个需求: 计算1-200之间各个数的阶乘,并将每个结果保存在mao中,最终显示出来,要求使用goroutime。 分析: (1)使用goroutime完成,效率高,但是会出现并发/并行安全问题; (2)不同协程之间如何通信; 对于(1):不同协程之间可能同时对一块内存进行操作,导 阅读全文
posted @ 2019-11-28 19:05 西西嘛呦 阅读(1864) 评论(0) 推荐(0)
摘要: 首先得了解: 进程 线程 并发 并行 Go协程和Go主线程: 主线程:相当于进程;直接作用于cpu上,是重量级的,是物理态的; 协程:相当于轻量级的线程;由主协程开启,是逻辑态的; Go协程的特点: 有独立的栈空间 共享程序堆单元 调度由用户控制 协程是轻量级的线程 举个例子: package ma 阅读全文
posted @ 2019-11-28 16:15 西西嘛呦 阅读(307) 评论(0) 推荐(0)
摘要: 使用它你可以获得什么优势: (1)无需用print就可以获得变量的值; (2)以日志地形式进行保存,方便随时查看; (3)可以根据需要,设置调用函数的深度; (4)多个函数的日志,可以设置前缀进行标识; 1.安装 pip install pysnooper 2.官方代码 import pysnoop 阅读全文
posted @ 2019-11-28 00:10 西西嘛呦 阅读(587) 评论(1) 推荐(0)