随笔分类 - 数据结构与算法
摘要:为了确保递归函数不会导致无限循环,它应具有以下属性: 一个简单的基本案例(basic case)(或一些案例) —— 能够不使用递归来产生答案的终止方案。 一组规则,也称作递推关系(recurrence relation),可将所有其他情况拆分到基本案例。 1、以相反的顺序打印字符串 2、两两交换链
阅读全文
摘要:常规的单向链表在进行增删改查时,只能从头结点开始遍历,时间复杂度O(N),而跳跃表采用了二分法的思想,平均时间复杂度可以做到O(logN),最坏时间复杂度O(N)。另外,跳跃表是一种基于概率的数据结构(见下文添加元素操作)。 基本结构 下图是跳跃表理想情况下的结构示意图。从图中可以看出, 每个节点包
阅读全文
摘要:原标题:【BAT面试现场】如何判断一个数是否在40亿个整数中? 题目:我有40亿个整数,再给一个新的整数,我需要判断新的整数是否在40亿个整数中,你会怎么做? 【请教大神】 小史回到学校,把面试的情况和计算机学院的吕老师说了一下。 小史忙拉着吕老师问,为什么我说分8次加载数据,面试官会说太慢了呢?
阅读全文
摘要:#include #include #include using namespace std; #define M 4 #define N 4 #define MaxSize 100 typedef int ElemType; typedef struct { int r; int c; ElemType d; /* /元素值 */ } TupNode; ...
阅读全文
摘要:Programming Question: Convert an IPv4 address in the format of null-terminated C string into a 32-bit integer.For example, given an IP address “172.16
阅读全文
摘要:题目: 定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。链表结点定义如下: 思路: 为了正确地反转一个链表,需要调整链表中指针的方向。为了将复杂的过程说清楚,这里借助于下面的这张图片。 上面的图中所示的链表中,h、i和j是3个相邻的结点。假设经过若干操作,我们已经把h结点之前
阅读全文
摘要:加密技术通常分为两大类:"对称式"和"非对称式"。 对称性加密算法:对称式加密就是加密和解密使用同一个密钥。信息接收双方都需事先知道密匙和加解密算法且其密匙是相同的,之后便是对数据进行加解密了。对称加密算法用来对敏感数据等信息进行加密。 非对称算法:非对称式加密就是加密和解密所使用的不是同一个密钥,
阅读全文
摘要:一、拉链法 上篇博文我们举的例子,HashMap,HashSet其实都是采用的拉链法来解决哈希冲突的,就是在每个位桶实现的时候,我们采用链表(jdk1.8之后采用链表+红黑树)的数据结构来去存取发生哈希冲突的输入域的关键字(也就是被哈希函数映射到同一个位桶上的关键字)。首先来看使用拉链法解决哈希冲突
阅读全文
摘要:Given a circular linked list, implement an algorithm which returns node at the beginning of the loop. DEFINITION If we move two pointers, one with spe
阅读全文
摘要:平衡二叉树(Balanced binary tree)是由阿德尔森-维尔斯和兰迪斯(Adelson-Velskii and Landis)于1962年首先提出的,所以又称为AVL树。 定义:平衡二叉树或为空树,或为如下性质的二叉排序树: (1)左右子树深度之差的绝对值不超过1; (2)左右子树仍然为
阅读全文
摘要:图解排序算法(一)之3种简单排序(选择,冒泡,直接插入) 图解排序算法(二)之希尔排序 图解排序算法(三)之堆排序 图解排序算法(四)之归并排序 图解排序算法(五)之快速排序 排序算法-八大排序实现和性能比较 图解排序算法(一)之3种简单排序(选择,冒泡,直接插入) 图解排序算法(二)之希尔排序 图
阅读全文
摘要:分布式算法 在做服务器负载均衡时候可供选择的负载均衡的算法有很多,包括: 轮循算法(Round Robin)、哈希算法(HASH)、最少连接算法(Least Connection)、响应速度算法(Response Time)、加权法(Weighted )等。其中哈希算法是最为常用的算法. 典型的应用
阅读全文
摘要:红黑树的Java实现TreeMap 1. 红黑树的特性 Red-Black Tree ( RBT)也是一种自平衡二叉树,其统计性能要好于 AVL树 。它是在1972年由 鲁道夫·贝尔 发明的,它现代的名字是在 Leo J. Guibas 和 Robert Sedgewick 于1978年写的一篇论文
阅读全文