
算法
away_lit
一年,诚心找工作……2019.6
展开
-
base64编码实现
package com.ls.hfvj;/** * 思路:base64只有64个字符,因此只需要6个二进制位来表示 实现:每3个字节为一组凑4个base64字符。 * 多余一个字节补4个0bit位(共12位),凑成2个base64字符;多余两个字节补2个bit位(共18位),凑成3个base64字符。 * 为了知道添加了bit位,(便于解码),一个=表示添加了2个bit位,两个=表示添...原创 2019-06-16 20:54:59 · 349 阅读 · 0 评论 -
protobuf varint编解码实现
varint:int数字用变长字节数组表示。package com.ls.hfvj;import java.util.Arrays;/** * varint:把整数用变长字节数组表示,每个int用1-5个byte表示。一个字节内,低7位是有效数据位,第8位是标识位,1表示有后续字节,0则表示该整数的结束没有后续字节。 * 当整数是小正数时,得到的字节序列明显比较小一些。 * 编...原创 2019-06-16 20:52:00 · 1161 阅读 · 0 评论 -
10类排序算法及改进
测试平台http://www.lintcode.com/zh-cn/problem/sort-integers/1.冒泡排序: 稳定,O(n*n)。 public void bubbleSort(int[] arr) { for(int i=0;i<arr.length-1;i++){//n个元素,只需要n-1趟,每趟固定一个元素到后面 for(...原创 2018-03-21 05:44:19 · 330 阅读 · 0 评论 -
BST,AVL,红黑树;B/B+树的概念及部分题解
leetcode98.验证二叉查找树、leetcode230.查找二叉查找树中第K小的元素、leetcode110.验证一颗二叉树是否是平衡二叉树1.BST(Binary Search Tree)二叉搜索树: a.性质: 1.左子树上的所有结点都小于根节点 2.右子树上的所有结点都大于根节点 3.左右子树分别也是二叉查找树(树结构一般采用递归定义,因...原创 2018-03-18 16:30:03 · 503 阅读 · 0 评论 -
skiplist
package com.ls.hfvj;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.List;/** * 跳表:实现对有序链表的类似二分查找 * 思路:<node,nodelevel>二元组共同确定了下一个候选结点c...原创 2019-07-05 20:59:03 · 302 阅读 · 0 评论