
算法
杨步涛的博客
老杨,目前居住上海 微信:yangbt_6225080 qq:306591368 擅长云计算、分布式系统设计、docker容器化技术、海量数据的存储、搜索、数据挖掘。
展开
-
用顺序表链表分别实现栈和队列
顺序表(查找比较块O(1),插入效率不高O(n))、链表(插入比较快0(1),只能顺序查询0(n))用顺序表实现栈,用position保存栈顶的位置,push操作,position移动,pop操作position后移动用顺序表实现队列(两个position),push操作,队尾position向前移动,pop操作,队头position向前移动。涉及到队列溢出,进行回路 链表初始原创 2012-12-22 22:50:54 · 1768 阅读 · 0 评论 -
解析从堆到优先队列的实现
优先队列,顾名思义,就是一种根据一定优先级存储和取出数据的队列。它可以说是队列和排序的完美结合体,不仅可以存储数据,还可以将这些数据按照我们设定的规则进行排序。先说说优先队列的实现吧。有一点需要澄清,很多人一直以为Priority Queue就是一个Priority Heap,这种说法当然是片面的。既然优先队列只是存储数据和排序的结合,那么根据我们学过的知识,可以列出以下的实现方法:无序数组、转载 2012-12-27 21:40:02 · 1258 阅读 · 0 评论 -
总结一下排序算法
1. 概述排序算法是计算机技术中最基本的算法,许多复杂算法都会用到排序。尽管各种排序算法都已被封装成库函数供程序员使用,但了解排序算法的思想和原理,对于编写高质量的软件,显得非常重要。本文介绍了常见的排序算法,从算法思想,复杂度和使用场景等方面做了总结。2. 几个概念(1)排序稳定:如果两个数相同,对他们进行的排序结果为他们的相对顺序不变。例如A={1,2,1,2,1}这里排序转载 2013-04-06 14:45:20 · 3789 阅读 · 1 评论 -
滑动窗口在storm中的实现
滑动窗口监控和统计应用的场景比较广泛,比如每隔一段时间(10s)统计最近30s的请求量或者异常次数,根据请求或者异常次数采取相应措施;这里说一下滑动窗口在storm中实现的原理。参见下图:窗口大小为30s,每10s就统计一次,那么窗口一共有3个slot,可以对窗口建立长度为3的数组;在storm的blot中在10s内通过execute(tuple)功能不停的把接收的tuple进行count个数(假原创 2014-01-04 22:07:56 · 16589 阅读 · 3 评论 -
MLlib算法简介
主要的机器学习的算法目前在MLlib中都已经提供了,分类回归、聚类、关联规则、推荐、降维、优化、特征抽取筛选、用于特征预处理的数理统计方法、以及算法的评测原创 2015-04-10 12:01:31 · 21420 阅读 · 1 评论 -
逻辑回归算法分析及在MLlib中的实现剖析
逻辑回归作为分类算法的一种,在互联网领域中的预测、判别中应用的非常广泛,像广告投放中的点击率预估,推荐算法中的模型融合等等。本文简要介绍逻辑回归的算法,以及在MLlib中的实现解析。逻辑回归其实是一个分类问题,此类问题的模型训练,基本上分3步骤,第一步要寻找假设预测函数h,构造的假设函数为在线性回归的函数基础上,加上一个Sigmoid函数进行Norm,把函数值输出在0到1的范围内,函数的值有特殊的原创 2015-04-11 15:15:33 · 10852 阅读 · 0 评论