随笔分类 - 数据结构
摘要:一、概述 Kafka is used for building real-time data pipelines and streaming apps. It is horizontally scalable, fault-tolerant, wicked fast, and runs in pro
阅读全文
摘要:1. gRPC简述 gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:grpc, grpc-java, grpc-go. 其中 C 版本支持 C, C++, Node.js, Python, Ruby, Objec
阅读全文
摘要:BSON是二进制JSON,是一个二进制编码的文档序列。类似JSON,BSON支持嵌套的文档和数组。BSON除支持基础的JSON类型外还支持扩展类型,如Date和BinData。 BSON [bee · sahn], short for Binary JSON, is a binary-enco
阅读全文
摘要:JSON(Javascript Object Notation)是一种轻量级的数据交换语言,以文字为基础,具有自我描述性且易于让人阅读。尽管JSON是Javascript的一个子集,但JSON是独立于语言的文本格式,并且采用了类似于C语言家族的一些习惯。JSON与XML最大的不同在于XML是一个完整
阅读全文
摘要:1. gRPC简述 RPC,远程方法调用,就是像调用本地方法一样调用远程方法。 gRPC是Google实现的一种RPC框架,基于HTTP/2标准设计,带来诸如双向流、流控、头部压缩、单 TCP 连接上的多复用请求等特。这些特性使得其在移动设备上表现更好,更省电和节省空间占用。目前提供 C、Java
阅读全文
摘要:一. ZeroMQ概述 ZeroMQ是一种基于消息队列的多线程网络库,其对套接字类型、连接处理、帧、甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字。ZeroMQ是网络通信中新的一层,介于应用层和传输层之间(按照TCP/IP划分),其是一个可伸缩层,可并行运行,分散在分布式系统间。 Zero
阅读全文
摘要:Toml是一种易读、mini语言,由github前CEO,Tom创建。Tom's Obvious, Minimal Language。 TOML致力于配置文件的小型化和易读性。wiki:https://github.com/toml-lang/toml/wiki,官网:https://github.
阅读全文
摘要:一、基础 YAML(Yet Another Markup Language),是一个JSON的超集,意味着任何有效JSON文件也都是一个YAML文件。它规则如下: 1)大小写敏感 2)使用缩进表示层级关系,但不支持tab缩进,只支持空格 3)缩进的数量不重要但至少一个空格,只要相同层级使用相同数量的
阅读全文
摘要:在计算机内存中,统一使用unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为utf-8编码。 用记事本编辑的时候,从文件读取的utf-8字符被转换为unicode字符到内存里,编码完成保存时再把unicode转换为utf-8保存到文件。 浏览网页时,服务器会把动态生成的unicode内容
阅读全文
摘要:转自: https://blog.csdn.net/shendl/article/details/4053853 前言 算法的核心问题是排序和搜索。这2个领域应用最广,研究也最透。本文我将讲解排序和搜索领域最高效的两个算法:快速排序算法和二分搜索算法。 教科书和很多实现库给出的这两个算法的代码非常复
阅读全文
摘要:常用排序算法特性 1. 插入排序 原理:将数组分为无序区和有序区两个区,然后不断将无序区的第一个元素按大小顺序插入到有序区中去,最终将所有无序区元素都移动到有序区完成排序。 对于未排序数据(右手抓到的牌),在已排序序列(左手已经排好序的手牌)中从后向前扫描,找到相应位置并插入。 插入排序在实现上,通
阅读全文
摘要:ProtoBuf是一种灵活高效的独立于语言平台的结构化数据表示方法,可用于表示通信协议和数据存储等各方面,与XML相比,ProtoBuF更小更快更简单。你可以用定义自己ProtoBuf的数据结构,用ProtoBuf编译器生成特定语言的源代码,(如C++,Java,Python等,目前 ProtoBu
阅读全文
摘要:一.AVL简介 AVL树的名字来源于它的发明作者G.M. Adelson-Velsky 和 E.M. Landis。AVL树是最先发明的自平衡二叉查找树(Self-Balancing Binary Search Tree,简称平衡二叉树)。 AVL树又称平衡二叉搜索树,它能保证二叉树高度相对平衡,尽
阅读全文
摘要:stack是一种先进后出的数据结构。 stack主要操作为,入栈,出栈,判断栈空满等。 1. 数组实现栈 2. 数组栈 3. 链表栈
阅读全文
摘要:queue是一种先进先出的数据结构。以下由简入繁引入queue。 queue的操作主要有:入队,出队,空满判断等。 1. 数组实现简单队列 2. 数组实现循环队列 3. 链表实现队列 参考: 1. libubox-runqueue 2. 数据结构学习之队列
阅读全文
摘要:heap概述 堆(Heap)是计算机科学中一类特殊的数据结构的统称,堆通常是一个可以被看做一棵树的数组对象。 1、堆是一棵完全二叉树; 2、堆中的某个结点的值总是大于等于(最大堆)或小于等于(最小堆)其孩子结点的值。 3、堆中每个结点的子树都是堆树。 最大堆max-heap:每个节点的键值(key)
阅读全文
摘要:JSON(JavaScript Object Notation) JavaScript 对象表示法,是一种轻量级的数据交换格式。类似于XML。 基础结构 JSON基于两种结构(即由两种结构组成:对象(键值对集合)和数组): “名称/值”对的集合(A collection of name/value
阅读全文
摘要:转自:哈夫曼树原理,及构造方法 哈夫曼树(最优二叉树) 百度百科:https://baike.baidu.com/item/%E5%93%88%E5%A4%AB%E6%9B%BC%E6%A0%91/2305769?fr=aladdin 一. 目的 找出存放一串字符所需的最少的二进制编码 二. 构造方
阅读全文
摘要:散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 给定表M,存在函数f(key),对任意给定的关键字值key,代入函
阅读全文
摘要:转自:编程中无穷的表示 int不能表达真正的无穷大或者无穷小。在C语言中,int为整型类型,根据不同平台不同,有16位(2字节)和32位(4字节)两种,其中32位int为目前主流。 无论哪种int类型都有其表达范围,其中16位int能表示的范围为-32768~+3276732位int能表示的范围为-
阅读全文