- 博客(12)
- 收藏
- 关注
原创 算法基础篇 — 递归
递归什么是递归?递归思想时间复杂度什么是递归?在任何编程中,凡是有一个函数或者方法自己调用自己,并且在具备一定条件后,可以正常退出,那么这就叫递归。递归其实和软件工程中的分治思想有异曲同工之妙。把大问题,拆分成小问题,然后再逐一解决汇总。但是递归往往具备一个特征,就是被拆分子任务的逻辑都是相似的。递归需要开辟栈空间,我之前的文章有写到,栈相当于弹夹,如果你的逻辑有bug,很有可能导致卡壳无法弹出子弹导致StackOverflow。当然,递归不一定是最优解,任何递归都可以不用递归实现程序逻辑,甚至还要优于
2020-07-04 22:07:35
216
原创 算法基础篇 — 栈、队列
栈、队列栈实现思路数组实现双向链表实现队列实现思路环形数组实现双向链表实现拓展使用队列实现栈使用栈实现队列包含最小值的栈栈百科:栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(
2020-06-21 11:03:59
494
原创 算法基础篇 — 单向链表、双向链表
单链表与双链表单向链表什么是单向链表?数据结构的实现链表反转实现思路code双链表什么是双向链表?数据结构的实现链表反转实现思路code应用场景单向链表什么是单向链表?如上图,每一个节点单向存储并引用下一个节点,每个节点存放你的对象或者数值,通过头节点就能得到一个链表这就是单向链表的特征。数据结构的实现@Data@AllArgsConstructorpublic static class Node<T> { // 节点数据 T data; // 下一个节点
2020-06-20 13:23:25
439
原创 算法基础篇 — 认识算法
算法基础篇 — 认识算法什么是算法?算法中常见的名词时间复杂度空间复杂度对数器数据结构常数项时间什么是算法?引用百度百科的一段话:算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
2020-06-14 18:03:55
540
原创 算法基础篇 — 选择排序
选择排序什么是选择排序?排序逻辑思想实现代码什么是选择排序?选择一个最小数,与剩余的所有数进行比较,并且被选择的数只比较一次。如果被选择的数与其他位置上的数比较最小,则记录。如果该最小的数不在被选择的数的位置上则交换位置,以此类推。也就是(被选择数~N-1)一直比较,直到被选择的数是最后一个位置。排序逻辑思想假设有一个数组arrint[] arr = {5,2,8,3,4,7,9,8}int min = 0;循环遍历选择出第一个最小数。5 > 2 交换位置; min = 2
2020-06-14 17:08:37
147
原创 Java — 位、位移、异或运算
Java — 位移、异或运算什么是二进制数计算?什么是二进制数为什么要了解二进制数?位运算位移运算异或同或运算什么是二进制数计算?什么是二进制数这里就不赘述基础理论了,实在是太多了。从普通人的角度来说就是在计算机中,以01组成的一串数字用来表示普通人能识别的阿拉伯数字、字符等就叫做二进制数。引用百度百科:二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。 [1]二进制数(binaries)是逢2进位的进位制
2020-06-14 12:24:34
634
原创 Java微信公众号开发—随笔(公众号)
一、初衷微信公众号开发按照这个趋势,个人认为是程序员必过的一个坎。公众号主要包括几种不同功能、不同业务需求的账号主体:1、公众平台服务号 2、公众平台订阅号 3、企业号,每个账号主体干啥的自行百度吧。记录一下自己遇到过的坑,希望小白看见了,对自己有或多或少的帮助,能少走些弯路吧,其实公众号开发,最重要的就是看懂文档了https://mp.weixin.qq.com/wiki,这里就不吐槽微信开...
2019-12-18 16:13:02
644
原创 Centos7.5 安装Node 12.13.0
一、安装方式yum安装,在升级(本次使用的安装方式) gcc编译源码安装(不推荐),耗费时间长,还可能出现各种奇葩问题...... 官网下载tar包安装二、安装过程安装默认nodeyum install nodejs -y安装命令说明:-y的意思是当安装过程提示选择全部为"yes"node -v 默认版本应该是6.17更改node环境变量vim /etc/pro...
2019-10-24 14:17:31
2646
原创 RocketMQ入坑之路(一)入门
什么是消息队列 MQ?这里摘抄阿里云RocketMQ的一段话,详情请看阿里云官方文档,写的非常不错,这里附上链接:https://www.alibabacloud.com/help/zh/doc-detail/29532.htm?spm=a2c63.p38356.b99.2.38567c62R1BFHD消息队列 RocketMQ 是阿里巴巴集团自主研发的专业消息中间件,基于高可用分布式集...
2019-05-22 16:34:36
2888
原创 kafka初识—随笔(windows版)
一、初衷因为之前学习消息队列,朋友推荐了kafka(卡夫卡),然后就入坑了一段时间,总算对kafka有一个初步的认识。现记录一下坑,和简单的使用方式。这个版本是window的操作,比较简单。希望对初学者有一定的帮助。二、安装kafkawindows版本,卡夫卡的版本是kafka_2.11-1.1.0;依赖zookeeper,版本使用的是zookeeper-3.4.10。直接到官网下载w...
2018-07-31 19:13:41
556
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人