主页

【贪心算法】Huffman编码

问题描述有一组字符集{c1, c2, ..., cn},在使用这组字符集的过程中,通过统计发现每个字符都有其相应的出现频率,假设对应的频率为{f1, f2, ..., fn}。现在需要对这些字符进行二进制编码,我们希望的编码结果如下:每个字符都有其独一无二的编码;编码长度是变长的,频率大的字符使用更少的二进制位进行编码,频率小的字符则使用比较多的二进制位进行编码,使得最终的平均编码长度达到最短;每

【贪心算法】Kruskal算法的实现与应用

问题背景假设我们有n个位置的集合V={v1, v2, ..., vn},我们想在它们顶部建立一个通信网络,网络应该是连通的,即任何两个位置vi和vj之间至少存在一条路径可以相互到达。对于确定的两个位置(vi,vj),假设在这两个位置之间建立网络连接的费用为c(i,j),c(i,j) > 0。将上述问题抽象成一个无向图G=(V,E),用图来表示可能被建立的链接的集合,图的每个结点代表每个位置,

JavaScript-OOP常见模式总结(二)

前言:之前我总结了JavaScript OOP常见的几种模式,今天继续把剩下的几种模式整理总结一遍。这几种模式相对于之前的工厂模式,构造函数模式等基础模式来说算是进阶版,有兴趣可以先看之前那篇博文熟悉一下几种基础的OOP模式,《JavaScript OOP常见模式总结》一、创建对象模式1. 动态原型模式该模式将所有信息都封装在构造函数中,可以在构造函数中初始化原型,并且保持了同时使用构造函数和原型

【贪心算法】区间调度问题总结

1. 单区间调度问题问题定义:存在单一资源,有一组以时间区间形式表示的资源请求reqs={req-1, req-2, ..., req-n},第i个请求希望占用资源一段时间来完成某些任务,这段时间开始于begin(i)终止于end(i)。如果两个请求req-i和req-j在时间区间上没有重叠,则说这两个请求是相容的,求出这组请求的最大相容子集(最优子集)。举个例子:有一间多媒体课室,某一个周末有多

JavaScript-OOP常见模式总结

一、创建对象模式1. 工厂模式使用一个函数作为工场函数,封装以特定接口创建对象的细节,每次调用工场函数都能生产一个对象。工厂模式的缺点是无法解决对象识别问题(即知道一个对象的类型),而且每次调用函数,都会创建一个带有属性和方法的对象,也就是说,一些共同的方法会被多次创建,即每个方法都会在每个对象上重新创建一遍。以下面的代码为例,obj1和obj2都分别有各自的setProperty方法,也就是说s

medrank算法配合B+树实现一个简单预测模型

A model for entity predictingdemo的github地址https://github.com/hongchh/predict-entity,欢迎点赞或指正不足之处注1: 如有问题请联系hongchh_sysu@qq.com注2: 本文仅供参考交流,请勿抄袭一、前言实体(entity)是描述一些数据对象区别于其他数据对象的内容,可以理解为一种类型、标签。在实际应用场景中,

编写一个支持jade+sass+livescript开发的gulpfile

gulp是一个优秀的前端开发自动化管理工具,今天,我准备分享一个可以支持用jade+sass+livescript开发web前端的gulpfile。OK,废话不多说,直接进入正题。基本文件目录介绍:12345/app : 该目录下存放我们要开发的应用程序文件(jade, sass, ls等文件)/dest : 该目录下存放最终的成品文件(html, css, js等文件)/node_modules

在windows下使用postgreSQL导入tpch的数据表

初学数据库,老师要求我们去熟悉postgreSQL,并且要求使用tpch的数据。今天在使用dbgen生成数据以及导入数据到postgre的过程中遇到一些问题,也在网上看了许多资料,几番折腾之后最终也算解决了问题,现在来把今天使用dbgen的流程和遇到的问题以及解决方案总结一下,以便以后需要的时候不用再到处找资料。使用visual studio打开dbgen文件夹下的tpch.sln并生成,生成之后