Algorithm && DataStructures
ChenVast
有梦想,敢拼博,执着的走属于自己的路。无惧一切,勇往直前,做自己。成为一个伟大的人,改变世界。
Python软件基金会(PSF)成员,
国际数据管理协会(DAMA)会员
展开
-
消息队列十大用途
消息队列十大用途翻译 2017-09-28 10:33:43 · 8607 阅读 · 0 评论 -
【算法和数据结构】算法复杂度小抄
复杂度曲线 通用数据结构操作复杂度小抄 数组排序复杂度小抄原创 2018-08-28 14:27:56 · 836 阅读 · 0 评论 -
【算法】数据科学家数据结构和算法指南
在数据科学中,计算机科学和统计学汇合在一起。作为数据科学家,我们使用统计原理编写代码,以便我们可以有效地探索手头的问题。这至少需要对数据结构,算法和时空复杂性有基本的了解,这样我们才能更有效地编程并理解我们使用的工具。对于更大的数据集,这变得尤为重要。我们编写代码的方式会影响分析数据的速度,并相应地得出结论。在这篇文章中,我将描述O符号作为描述时空复杂性的方法,并简要介绍一些与时间复杂性相关的...翻译 2018-08-28 11:57:19 · 1402 阅读 · 0 评论 -
【算法】分治算法案例— 两个排序数组的中位数
两个排序的数组A和B分别含有m和n个数,找到两个排序数组的中位数,要求时间复杂度应为O(log (m+n))。 样例给出数组A = [1,2,3,4,5,6] B = [2,3,4,5],中位数3.5给出数组A = [1,2,3] B = [4,5],中位数 3挑战 时间复杂度为O(log n) 这个解法是我在leetcode看到的一个非常好的解法...原创 2018-01-02 11:13:23 · 1257 阅读 · 0 评论 -
【算法】python实现数组左减右最大差
思路:遍历数组,每次取出当前轮数的整数A[i]和该整数以后的数组a。如:A = []--> A[i] 和 a = A[i-1,i-2,n]计算差,当前整数减去a数组中的最小值a_min,需要排序a数组。如:A[i] - a_min每轮都需要比较差,取出最大差。如:最大差 = max(上一个差,当前差)复杂度为O(n)。 code: def Max...原创 2017-12-29 17:18:32 · 1649 阅读 · 2 评论 -
【数据结构】Dict(字典)和HashMap原理区别
Python内部很地方都使用着dict这种结构,在对象属性__dict__就是一个字典,所以对其效率要求很高。dict采用了哈希表,最低能在 O(1)时间内完成搜索。同样的java的HashMap也是采用了哈希表实现,不同是dict在发生哈希冲突的时候采用了开放寻址法,而HashMap采用了链接法。开放寻址法优点记录更容易进行序列化(serialize)操作 如果记录总...转载 2018-08-06 11:26:57 · 11140 阅读 · 2 评论 -
【图像算法】ImageHash(Python 图像哈希库)
用Python编写的图像哈希库。ImageHash支持:平均哈希(aHash)感知哈希(pHash)差异哈希(dHash)小波散列(wHash)要求基于PIL,numpy和scipy.fftpack(用于pHash)通过pypi轻松安装。基本用法from PIL import Imageimport imagehashhash = imagehash.average_hash(Image.op...原创 2018-04-30 21:04:15 · 8330 阅读 · 2 评论 -
【算法】相似度算法—文本相似度
1) Jaccard相似系数Jaccard系数主要用于计算个体间的相似度,个体的特征属性可以通过符号度量或者布尔值标识。不能通过特征属性的差异进行直接计算,只能通过特征属性是否相同进行比较。Jaccard系数只关心个体间特征属性是否相同 计算步骤:1、 分词处理2、 把需要计算的网页内容转化为集合3、 将集合和集合之间进行计算并集和交集4、 计算交...原创 2018-03-13 15:41:27 · 4526 阅读 · 0 评论 -
【算法】距离算法总结
1. 欧氏距离欧几里得度量(euclidean metric)(也称欧氏距离)是一个通常采用的距离定义在m维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。在二维和三维空间中的欧氏距离就是两点之间的实际距离。 二维公式: 三维公式: n维公式:或 向量运算表现形式: python实现:"""欧氏距离"""import numpy as npfrom scipy.spa...原创 2018-03-13 11:40:55 · 4133 阅读 · 0 评论 -
【算法】动态规划算法—买卖股票的最佳时机系列(1-4)
买卖股票的最佳时机—1:题目:假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易,设计一个算法来找出最大利润。解法:该题解法和最大连续子数组和的解法思路是一样的。1、根据股票的利益意义,想要更多利益则值低时买进,值高时卖出。根据提供的股票价格不方便得出股票价格变化,对原数据进行计算:list[i] - list[i-1] = 股票的变化。变化为正时股票增长(原创 2018-01-02 15:01:00 · 16046 阅读 · 7 评论 -
(精华)七大查找算法
查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找。本文简单概括性的介绍了常见的七种查找算法,说是七种,其实二分查找、插值查找以及斐波那契查找都可以归为一类——插值查找。插值查找和斐波那契查找是在二分查找的基础上的优化查找算法。树表查找和哈希查找会在后续的博文中进行详细介绍。转载 2017-09-20 09:33:35 · 760 阅读 · 0 评论 -
【笔试面试】50+数据结构&算法问题
有许多计算机科学专业毕业生和程序员在Uber和Netflix等初创公司申请编程,编码和软件开发职位; 亚马逊,微软和谷歌等大型组织; 像Infosys或Luxsoft这样的服务型公司,但他们中的许多人都不知道当你在这些公司申请工作时会遇到什么样的编程面试问题。在本文中,我将与不同经验水平的程序员分享一些常见的编程面试问题,从刚从大学毕业的人到具有一到两年经验的程序员。编码访谈主要...翻译 2018-10-09 09:46:53 · 697 阅读 · 0 评论