几个概念 堆:堆本质就是一棵完全二叉树。 常用的两种堆:最大堆、最小堆。 1、最大堆(大顶堆):堆的每个父节点都大于其孩子节点; Key[i]>=Key[2i+1] && key[i]>=ke…
为什么很多编程语言中的数组都从0开始编号?——你真的了解数组吗?
数组是学习数据结构的开端。尽管数组看起来非常基础、简单,但是有多少人理解数组的精髓呢? 在大部分编程语言中,数组都是从0开始编号的,回想当年初学java,刚接触数组的时候,我就想过,为什么数组要从0开始编号,而不是从1开…
Go 实现链表
链表 链表是一种物理结构上非连续、非顺序的存储结构。链表包含元素的一系列链接。每个链接都包含与另一个链接的连接。 链表结构 image 结构分析 链接列表包含一个名为first的链接元素。 每个链路都带有一个数据字段和一…
2018-10-02 数据结构学习---双向链表的实现
2018.10.2 数据结构学习—双向链表的实现 /* * 学习时间:2018-10-2 * 学习内容:数据结构之尾插法实现双向链表,以及链表的增删查改 * 学习人:田超 * QQ:770925351 * E…
大数据计算常用的分布式计算组件——Hadoop、Storm以及Spark
“工欲善其事,必先利其器”,具有特定功能的可复用组件正是计算机领域中的利器。在大数据的浪潮下,许多用于处理大数据的组件应运而生,分别应用在“数据传输”“数据存储”“数据计算”以及“数据展示”的环节中。 本文将介绍“数据计…
无脑贝叶斯概率解释和应用
缘起 赞叹一下,实在再也找不到比这个更简洁和无须多少数学基础的贝叶斯公式解释了! 直接完全数学上的贝叶斯,符号绕来绕去,很不容易解释和记忆,要是换成形象点的内容解释起啦会轻松很多。 本文不是为了去数学证明贝叶斯公式,而是…
数据结构(四):队列 之 循环队列 与 链队列
队列概念 队列是一种先进先出的结构,只允许在一端进行插入操作,在另一端进行删除操作,简称 FIFO ,允许插入的一端称为队尾,允许删除的一端称为队头 假设队列 q=(a1,a2….an),那么a1就是队头元素,an是队尾…
基本算法——归并排序算法
归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得…
java寻找假币算法
图片发自简书App 注:图片来源于网络 老板:各位朋友们,瞧。。。这里有一堆金币(已知数量),但是里面有一枚是假币,质量比真金币要轻,谁能把这枚金币找出来,这些金币都作为你的奖励。。。 程序员:哈哈,即将走上人生巅峰~迎…
复杂度分析(下)笔记:浅析最好、最坏、平均、均摊时间复杂度
复杂度分析(下)笔记:浅析最好、最坏、平均、均摊时间复杂度 最好时间复杂度和最坏时间复杂度在 渐近符号学习 中已经了解到了。 一、平均时间复杂度 // n 表示数组 array 的长度 int find(int[] ar…
数据结构(八):冒泡排序
冒泡排序是一种交换排序,通过比较相邻的元素,如果反顺序则交换,直到没有反序的元素为止 冒泡排序代码 int[] arr = new int[]{1, 3, 6, 4, 7, 8, 5, 10, 9}; // API 实现…
【大数据算法】Top N 算法的Hadoop实现
正文之前 感觉自己有一个世纪没写过文章了似的。不管了,今天看数据算法,那就拿这个开刀 另外,小生不才体真的超棒啊 !! 小生不才, 冒昧地喜欢了姑娘这么久, 甚是打扰,望多包涵, 今日愿以山上一草一木为誓, 今日你我二人…