3 Mankind_萌凯

尚未进行身份认证

我要认证

90后,计算机研究生,欢迎关注我的微信公众号:萌凯的程序人生

等级
TA的排名 3w+

树,最复杂的数据结构

树,是计算机中最复杂的一种数据结构,它的形式多变,有各种各样复杂的树被人创造并在计算机的各个地方使用,如红黑树,B+树等。本文将对树这一基本的数据结构进行介绍。文章目录1.什么是树2.满二叉树3.完全二叉树4.总结1.什么是树树是计算机中最重要的,也是大大提高效率的一种数据结构。树同样是存储数据的一种结构,只不过,它以树的方式进行组织。如下图所示,是一棵二叉树。图中的每个圆圈称为“结点”...

2020-02-19 21:48:18

队列,计算机中的排队模型

生活中随处可见队列,例如食堂打饭,超市买单的时候,我们都会自然而然地排队。那么,在计算机中如何表示这一现象呢?文章目录1.什么是队列2.入队与出队3.循环队列4.总结1.什么是队列队列,是一种我们再熟悉不过的模型了,现实中到处可见它的场景,比如,饭堂打饭需要排队,购票需要排队。队列是一种最体现公平的数据结构,因为它的特点就是“先进先出(First In First Out,FIFO)”...

2020-02-16 09:55:24

栈,实现递归的数据结构

栈在计算机中扮演着重要的角色,它是计算机实现函数调用的基本数据结构。文章目录1.什么是栈2.入栈3.出栈4.栈的实现5.总结1.什么是栈栈是一种较为特殊的数据结构,它的特点是先进后出。什么意思呢?想象你有一个跟书本一样长宽的盒子,当你依次往里面放进书本1,书本2,书本3之后,如果想要把书本1拿出来,你会发现现在你能拿出来的只有书本3。因为其他两本都被压在下面了。只有当书本3,书本2被依...

2020-02-15 10:07:00

链表,最省内存的数据结构

链表,是数据结构比较基础的一种数据结构。它具有节省内存,需要多少就创建多少的特性。文章目录1.什么是链表2.创建链表3.查找元素4.删除元素5.总结1.什么是链表链表是一种比较节省内存的数据结构,它的每个元素是一个节点node,每个node包含了存储值value和下个节点指针next,指向下一个node。在数组中,我们需要先为数据分配一定大小的空间,比如int a[10]。但实际上,我...

2020-02-14 10:54:45

数组,编程语言的基石

引言在计算机的世界中,数据可以有各种各样的组织形式,比如,模拟现实中排队取钱的队列,代表复杂的社交网络的图结构等,不同的数据结构各自适应不同的情况。学习数据结构,我们能够为我们要解决的问...

2020-02-13 10:40:35

排序算法之桶排序

目录本文将介绍排序算法中又快又简单的排序算法——桶排序,包括:桶排序计数排序基数排序1桶排序桶排序是在已经数据的范围的条件下,创建若干个桶,根据相应的比较规则将待排数据落入各个对应的桶...

2020-02-12 08:53:24

排序算法之归并排序

引言本文将介绍排序算法中的归并排序,学习归并排序需要很好地理解计算机中的分治思想和递归思想。1分治思想归并排序,利用分而治之的思想,将大的问题,转换成简单的,小的问题来解决。分治,字面...

2020-02-11 09:36:03

排序算法之快速排序,它为什么这么快?

目录本文将介绍排序算法中最常用,以及最重要的快速排序。包括:快速排序实例代码解析效率分析1快速排序实例快速排序由C. A. R. Hoare在1960年提出,是冒泡排序的一种改进。快速...

2020-02-10 09:34:29

排序算法之希尔排序

本文将介绍排序算法中的希尔排序,它是高级版的插入排序,是我们第一个介绍的有点难度的算法。1. 实例讲解希尔排序,是插入排序的一个升级版本。在插入排序中,无论数据是怎么分布的,依然循规蹈矩的一步一步比较,移动,插入。在希尔排序中,采用跳跃式的方式,按照某个增量gap将数组元素分成多组序列,并使用插入排序使得各自组内有序。随后逐步缩小gap,继续按组进行插入排序,直到增量为1。这样...

2020-02-09 10:20:43

排序算法之插入排序,玩扑克牌必会

本文将介绍排序算法中的插入排序,包括: 插入排序实例 代码解析 效率分析 1 插入排序实例今天来学习插入排序,在讲插入排序之前,我们先来讲一讲扑克牌。每个人都会打扑克牌,不知道你们有没有注意到,我们在拿牌的时候,会习惯性地把手上的牌按照从小到大排好。这样我们在出牌的时候才不会手忙脚乱。当你的小伙伴正在发牌的时候,如果你习惯发一张拿一张,你可能会无意中用到插...

2020-02-08 13:06:08

排序算法之冒泡排序,入门必学

本文将对排序算法中的冒泡排序进行讲解。1 冒泡排序今天介绍另外一种排序算法,冒泡排序。它的基本思想是,对相邻的元素进行两两比较,顺序相反则交换,这样,每趟会将最小(或最大)的元素浮到数组最后面,最终达到整体有序。冒泡排序也是较为直观的一种排序算法,以整体升序为例,我们先看看每一趟具体发生了什么:我们可以看到,每一趟过程中,从左到右,相邻的位置进行比较,如果不符合升序,就将其位置对调。...

2020-02-07 10:39:25

排序算法之选择排序

排序算法是每个程序员必须掌握的基础知识。目前经典的排序算法,有冒泡排序,选择排序,插入排序,希尔排序,快速排序,堆排序,归并排序,桶排序。本文将对选择排序进行讲解。另外,我最近注册了个人公众号【萌凯的程序人生】,分享个人的一些学习总结和经验,欢迎大家关注。文章目录1.选择排序2.代码解析3.效率分析1.选择排序我们会经常遇到对数据进行排序的问题,比如,一组学生成绩按照从大到小的顺序排名...

2020-02-06 13:47:53

二分查找,教你如何提高搜索效率

二分查找,是程序员入门必会的一个高效搜索算法。本文将对二分查找,以及时间复杂度等概念进行讲解。1 什么是算法和时间复杂度在计算机科学中,算法是指在有限时间内解决一个问题的一系列确定的指令。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。算法的时间复杂度是一个函数,它定性描述该算法的运行时间。这是一个代表算法输入值的字符串的长度...

2020-02-05 09:23:53

要理解递归,你先要理解递归

本文将介绍递归的概念和简单的例子,希望能够帮助读者理解计算机中难以理解的递归。1 什么是递归通常我们写出很多函数之后,这些函数是用来提供给其他地方调用完成一些事情的。比如我们有函数gcd用来计算两个数的最小公约数。如果我们要计算三个数的最小公约数呢?我们可以写一个新的函数gcd2,假设三个数为a,b,c,可以调用gcd(a,b)得到a和b的最小公约数ab,再调用gcd(ab,c...

2020-02-04 11:53:51

C语言:基本语法汇总

本文将对计算机编程的入门语言——C语言中的基本语法,包括判断,循环,函数,结构体,数组等概念进行介绍讲解。1判断语句在生活中我们经常要做出选择,程序也是如此。购物时的标准,优惠券的折扣条件等,在代码中都需要if语句来进行判断。假如我们要判断一个正整数是偶数还是奇数,可以这样子写:其中if后面括号中的 x%2 == 0 是一个判断语句,当x%2的值等于0的时候,x%2==...

2020-02-03 14:57:20

c语言:从零开始的编程之旅

本文将对计算机编程的入门语言——C语言做简单讲解,包括: 编程工具devcpp的安装 C语言中的变量 C语言的运算 1 devcpp的安装C语言是计算机领域的入门编程语言。它跟我们平时所学的英语之类的语言有什么不同呢?由于计算机是一个没有感情的机器,它不能够理解我们说的话,活在自己的世界中。而计算机的世界,就是二进制的世界,所有的指令,都会转换成二...

2020-02-02 11:51:46

听说今天发一篇原创博客就可以领个勋章

1024,节日快乐

2019-10-24 13:48:56

【推荐系统】MF-OPC与MF-MPC

文章目录1.MF-OPC算法2.MF-MPC(附代码)1.MF-OPC算法  在矩阵分解MF算法中,我们使用了SVD的思想,将user-item评分矩阵分解为user的潜在兴趣矩阵U和item的潜在特征矩阵V,但对于每个评分ruir_{ui}rui​的预测,我们只根据用户U和物品I的潜在特征进行计算。r^ui=Uu.Vi.T+bu+bi+μ\hat r_{ui}=U_{u.}V_{i.}^...

2019-03-20 10:52:15

【推荐系统】SVD++

用户对物品的评分等操作实际上很少,但是用户的点击,关注,收藏,浏览时长等隐性行为却很多,能否将这些考虑进来作为我们的预测准则之一呢?  SVD++在RSVD的基础上,考虑了用户对物品的隐式行为。因为有时候一个用户的点击,收藏,浏览时长等隐式行为,我们是可以将其考虑进来的,它作为一种交互,也反应了用户的一种隐式意愿。为了将隐式兴趣加入到模型中,在预测规则中加入r^ui=Uu.Vi.T+(1∣...

2019-03-19 15:31:13

【推荐系统】交替最小二乘法ALS和RSVD

文章目录1.ALS算法2.RSVD算法1.ALS算法  ALS(Alternating Least Square,交替最小二乘法)指使用最小二乘法的一种协同推荐算法。在UserCF和ItemCF中,我们需要计算用户-用户相似性矩阵/商品-商品相似性矩阵,对于大数据量的情况下很难处理好。那我们能否像PCA,word embedding那样,用低维度的向量来表示用户和商品呢?  ALS算法将us...

2019-03-18 16:36:05

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。