算法与数据结构
morningcat2018
情深不寿,慧极必伤
展开
-
Golang 实现平衡二叉树--方法2
package avl2import "fmt"const LH = 1 /* 左高 */const EH = 0 /* 等高 */const RH = -1 /* 右高 */type AvlTreeNode struct { data int bf int /* 结点的平衡因子 */ lchild, rchild *AvlTreeNode}type AvlTree struct { root *AvlTreeNode}原创 2021-11-03 21:50:29 · 185 阅读 · 0 评论 -
Golang 实现平衡二叉树
// Tree.gopackage avlimport "fmt"type AVLTreeNode struct { Data int Parent *AVLTreeNode LeftTree *AVLTreeNode RightTree *AVLTreeNode}type AVLTree struct { Root *AVLTreeNode}func BuildTree() *AVLTree { return &AVLTree{nil}}f原创 2021-11-02 02:22:04 · 259 阅读 · 0 评论 -
归并排序 (C语言数组版)
#include <stdio.h>#include <time.h>#include <stdlib.h>void print(int *source, int length) { for (int i = 0; i < length; i++) { printf("%d ", source[i]); } printf("\n");}/* 要生成和返回随机数的函数 */void getRandom(int *原创 2021-02-02 14:10:51 · 789 阅读 · 0 评论 -
快速排序(C语言指针版)
// quick_sort.h#ifndef HELLOCPLUS_QUICK_SORT_H#define HELLOCPLUS_QUICK_SORT_Hstruct node { int value; node *next;};node *getLinkList(int length);void printLinkList(node *head);node *quickSortByLinkList(node *head);node *quickSortByLinkList2(no原创 2021-02-05 12:59:37 · 519 阅读 · 0 评论 -
二叉树中序遍历(非递归非栈法 Golang版)
package mainimport ( "fmt")type TreeNode struct { value int left *TreeNode right *TreeNode}func addNode(head *TreeNode, value int) *TreeNode { if head == nil { return &TreeNode{value, nil, nil} } else if (value >= head.value) { he原创 2021-10-20 00:39:38 · 227 阅读 · 0 评论 -
二叉树中序遍历(非递归非栈法 C语言版)
非递归 指针法原创 2021-02-08 14:06:41 · 628 阅读 · 0 评论 -
二叉树遍历(非递归非栈法 Java版)
二叉树遍历(非递归,非栈)package tree.morris;import tree.TreeNode;import java.util.ArrayList;import java.util.List;/** * 二叉树遍历:非递归,不用栈,O(1) * <p> * {link https://www.cnblogs.com/AnnieKim/archive/2013/06/15/MorrisTraversal.html} 原版使用 C 编写 */public cl转载 2020-06-04 20:39:26 · 441 阅读 · 0 评论 -
大数相乘-使用数组思路解决方案(Java版)
package algorithm.factorial;import java.util.Arrays;/** * @describe: 大数相乘问题 * @author: morningcat.zhang * @date: 2020/5/17 4:27 PM */public class BigNumTest { public static void main(String[] args) { int[] a1 = new int[]{7, 9, 9};原创 2020-05-18 02:30:10 · 238 阅读 · 0 评论 -
关于树的一些知识梳理
树的遍历前序遍历:根左右后序遍历:左右根中序遍历:左根右搜索二叉树是一棵二叉树任意节点的左孩子的值均小于自身的值,右孩子的值大于自身的值;中序遍历,是升序排列平衡二叉树是一棵二叉树任意节点的左右两个子树的高度差不超过1(<=1)平衡树的实现AVL Tree每个节点都记录左右子树的高度差严格平衡B TreeSplay Tree红黑树...原创 2020-05-06 20:48:21 · 1466 阅读 · 0 评论 -
根据算法图解中的R&C思想编写的快速排序实现(Java版)
昨夜失眠,阅读图解算法编了一小段代码,快速排序的一种简陋实现:package algorithm.quick_sort;import java.util.*;import java.util.stream.Collectors;/** * @describe: 快速排序的一种简略实现 * @author: morningcat.zhang * @date: 2020/4/20 4...原创 2020-04-20 10:04:57 · 178 阅读 · 0 评论 -
二叉树遍历(递归法和非递归栈法 Java版)
二叉树的一些操作TreeNodepublic class TreeNode<E> { @Getter @Setter TreeNode left; @Getter @Setter TreeNode right; @Getter E value; TreeNode(E value) { t...原创 2020-04-16 11:55:36 · 179 阅读 · 0 评论 -
Cloud native基本定义
云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。云原生计算基金会(CNCF)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术...转载 2019-08-28 10:36:29 · 936 阅读 · 0 评论 -
Chris Richardson 微服务系列(二)
Chris Richardson 微服务系列(二)5. 微服务的事件驱动数据管理一、微服务以及分布式数据管理中存在的问题二、事件驱动的架构三、实现原子化使用本地事务发布事件挖掘数据库事务日志使用事件源四、总结6. 选择微服务部署策略7. 将单体应用改造为微服务作者介绍:Chris Richardson,是世界著名的软件大师,经典技术著作《POJOS IN ACTION》一书的作者,也是 clou...转载 2019-07-11 10:17:26 · 348 阅读 · 0 评论 -
Chris Richardson 微服务系列
Chris Richardson 微服务系列1. 微服务架构概念解析构建单体应用踏入单体架构的地狱微服务——直击痛点微服务架构的好处微服务架构的不足总结2. 构建微服务架构:使用 API Gateway本期内容简要概述客户端与微服务直接通信使用 API 网关构建微服务API 网关的优点和缺点实现 API 网关性能和可扩展性使用响应式编程模型服务调用服务发现处理局部失败总结3. 深入微服务架构的进程...转载 2019-06-27 11:26:12 · 700 阅读 · 0 评论 -
关于 SkipList (跳表)的一些资料梳理
关于 SkipList (跳表)的一些资料梳理简介SkipList(译为跳表,又称跳跃表);跳跃列表是一种数据结构。它允许快速查询一个有序连续元素的数据链表。跳跃列表的平均查找和插入时间复杂度都是O(log n),优于普通队列的O(n)。快速查询是通过维护一个多层次的链表,且每一层链表中的元素是前一层链表元素的子集。一开始时,算法在最稀疏的层次进行搜索,直至需要查找的元素在该层两个相邻的元...原创 2019-05-30 20:44:52 · 149 阅读 · 0 评论 -
布隆过滤器 基础资料梳理
布隆过滤器 基础资料梳理)基本概念布隆过滤器 算法实现guava 实现hutool 实现基本概念布隆过滤器(英语:Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。如果想判断一个元素是不是在一个集合里,一般想...原创 2019-06-11 17:57:47 · 398 阅读 · 0 评论