
C
文章平均质量分 84
iteye_18070
这个作者很懒,什么都没留下…
展开
-
详解PHP中Array结构HashTable
我们知道PHP中的Array在内部是以Hash的结构进行存储的。本文主要重点也是对PHP中Array的静态结构和动态结构进行分析和记录。这里的静态结构,是指存储PHP中Array数据时使用的数据结构,即所谓的HashTable。动态结构,是指程序在运行过程中,Array数据的存储状态。 首先PHP中的hashTable的结构如下:typedef struct bucket ...原创 2011-07-12 19:44:30 · 171 阅读 · 0 评论 -
C语言实现HashTable
C语言的少即是多: 从语言内容来讲,C绝对是足够精炼的,它提供且仅提供了我们工作所必须的编程元素。从可以实现的功能以及能为我们提供的代码管理和性能支持上来看,它也做的恰到好处。没有C++的繁琐、比脚本及所谓的OO语言更高效、当然也比汇编更容易理解。 不过对于用惯了Java的HashMap、LinkedHashMap,Python的Dict,以及PHP的Array 的同学...原创 2013-05-18 00:18:53 · 446 阅读 · 0 评论 -
基于堆 [Heap] 结构的 TopK 问题实现
在实际工作中我们经常会遇到将一个list中最大[最小]的前TopK个元素输出的问题。比如说在电商领域,求上个月卖的最好的前10个商品,或者是每个品类下卖的最好的前10个商品。 这类问题,很多数据库或数据仓库工具可以提供直接的实现,比如第一个问题在mysql中就直接order by + limit就好; 而第二个问题在Hive中也很简单, distribute + order by ...原创 2013-06-30 15:50:34 · 232 阅读 · 0 评论 -
关于数组指针和指针数组
在C/C++的编程中,对指针的使用和了解,再熟悉都不为过。C/C++毫无疑问的十分强大,但离开了指针和数组,它们就什么都干不了了,可见其重要。 使用数组和指针来描述数据,是C/C++编程中最常见的工作。本文通过一个描述二维数据的问题,来回顾下数组和指针的使用。 假设我们要表示的是一个5行3列的数据,则共有如下五种常用方式。每种方式各有优缺点以及适用场景。 ...原创 2013-07-30 21:01:54 · 164 阅读 · 0 评论 -
会计记账小程序
许久不来,手都有些生疏了。写个小程序热热手先。 假设有一个数字,可以很大,理论上可以无限大。要如何转成其对应的汉子大写? 就是那种支票本上、汇款单上的那种大写金额。 例如: 数字:193817071803800182801088108 大写:壹佰玖拾叁亿捌仟壹佰柒拾万柒仟壹佰捌拾亿叁仟捌佰万壹仟捌佰贰拾捌亿零壹佰零捌万捌仟壹佰零捌 代码...原创 2015-12-10 10:38:01 · 616 阅读 · 0 评论 -
深入理解GBDT
GBDT 全称为 Gradient Boosting Decision Tree。顾名思义,它是一种基于决策树(decision tree)实现的分类回归算法。不难发现,GBDT 有两部分组成: gradient boosting, decision tree。Boosting 作为一种模型组合方式,与gradient descent 有很深的渊源,它们之间究竟有什么关系?同时 decision...2016-05-10 16:20:03 · 675 阅读 · 0 评论 -
谱聚类算法实现
谱聚类(Spectral Clustering, SC)是一种基于图论的聚类方法。将带权无向图划分为两个或两个以上的最优子图,使子图内部尽量相似,而子图间距离尽量距离较远,以达到常见的聚类的目的。"带权无向图"这个词太学术了,我们换一种叫法,即:相似度矩阵。假设我们有一个相似度矩阵,矩阵中存的是所有对象的两两相似度。 那么这个矩阵应该有如下性质:矩阵为N * N,N为...原创 2014-09-16 18:25:49 · 1460 阅读 · 0 评论 -
关于连续值离散化[MODL]
将连续值离散化的问题,在数据挖掘和机器学习的任务中并不鲜见,当然离散化的方法也有很多。本文将要介绍的是一种基于数据标签(label)来对连续数据值做离散化分割的监督学习方法。 问题:考虑有如下数据: 1,0 2,0 3,0 4,0 5,0 6,1 7,1 8,1 9,1 10,1第一列是连续值数...原创 2014-10-18 22:30:01 · 1144 阅读 · 0 评论 -
Viterbi 算法应用实现
算法简介:Viterbi 算法又叫维特比算法,其是HMM模型中在给出观测序列O,以及状态转移举证M 和 状态-观测矩阵Q之后,求解能够最佳解释序列O的状态序列S的一种动态规划算法。具体如下图所示:其中: 标记为O的 [0|1] 序列是观测序列, 标记为S的序列中横向的箭头即状态在根据转移矩阵M进行转移, 其中S序列与O序列之间向下的箭头表示根据状态生成...2014-12-22 10:51:43 · 247 阅读 · 0 评论