随笔分类 -  数据结构与算法

摘要:为了确保递归函数不会导致无限循环,它应具有以下属性: 一个简单的基本案例(basic case)(或一些案例) —— 能够不使用递归来产生答案的终止方案。 一组规则,也称作递推关系(recurrence relation),可将所有其他情况拆分到基本案例。 1、以相反的顺序打印字符串 2、两两交换链 阅读全文
posted @ 2019-08-25 10:06 kaleidoscopic 阅读(488) 评论(0) 推荐(0) 编辑
摘要:常规的单向链表在进行增删改查时,只能从头结点开始遍历,时间复杂度O(N),而跳跃表采用了二分法的思想,平均时间复杂度可以做到O(logN),最坏时间复杂度O(N)。另外,跳跃表是一种基于概率的数据结构(见下文添加元素操作)。 基本结构 下图是跳跃表理想情况下的结构示意图。从图中可以看出, 每个节点包 阅读全文
posted @ 2018-11-07 16:45 kaleidoscopic 阅读(503) 评论(0) 推荐(0) 编辑
摘要:原标题:【BAT面试现场】如何判断一个数是否在40亿个整数中? 题目:我有40亿个整数,再给一个新的整数,我需要判断新的整数是否在40亿个整数中,你会怎么做? 【请教大神】 小史回到学校,把面试的情况和计算机学院的吕老师说了一下。 小史忙拉着吕老师问,为什么我说分8次加载数据,面试官会说太慢了呢? 阅读全文
posted @ 2018-11-05 17:55 kaleidoscopic 阅读(297) 评论(0) 推荐(0) 编辑
摘要:#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; ... 阅读全文
posted @ 2018-11-05 17:28 kaleidoscopic 阅读(248) 评论(0) 推荐(0) 编辑
摘要: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 阅读全文
posted @ 2018-10-22 20:15 kaleidoscopic 阅读(1698) 评论(0) 推荐(0) 编辑
摘要:题目: 定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。链表结点定义如下: 思路: 为了正确地反转一个链表,需要调整链表中指针的方向。为了将复杂的过程说清楚,这里借助于下面的这张图片。 上面的图中所示的链表中,h、i和j是3个相邻的结点。假设经过若干操作,我们已经把h结点之前 阅读全文
posted @ 2018-10-09 21:55 kaleidoscopic 阅读(212) 评论(0) 推荐(0) 编辑
摘要:加密技术通常分为两大类:"对称式"和"非对称式"。 对称性加密算法:对称式加密就是加密和解密使用同一个密钥。信息接收双方都需事先知道密匙和加解密算法且其密匙是相同的,之后便是对数据进行加解密了。对称加密算法用来对敏感数据等信息进行加密。 非对称算法:非对称式加密就是加密和解密所使用的不是同一个密钥, 阅读全文
posted @ 2018-09-28 09:59 kaleidoscopic 阅读(3689) 评论(0) 推荐(1) 编辑
摘要:一、拉链法 上篇博文我们举的例子,HashMap,HashSet其实都是采用的拉链法来解决哈希冲突的,就是在每个位桶实现的时候,我们采用链表(jdk1.8之后采用链表+红黑树)的数据结构来去存取发生哈希冲突的输入域的关键字(也就是被哈希函数映射到同一个位桶上的关键字)。首先来看使用拉链法解决哈希冲突 阅读全文
posted @ 2018-09-04 20:05 kaleidoscopic 阅读(20385) 评论(0) 推荐(1) 编辑
摘要: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 阅读全文
posted @ 2018-08-17 18:48 kaleidoscopic 阅读(174) 评论(0) 推荐(0) 编辑
摘要:平衡二叉树(Balanced binary tree)是由阿德尔森-维尔斯和兰迪斯(Adelson-Velskii and Landis)于1962年首先提出的,所以又称为AVL树。 定义:平衡二叉树或为空树,或为如下性质的二叉排序树: (1)左右子树深度之差的绝对值不超过1; (2)左右子树仍然为 阅读全文
posted @ 2018-08-17 13:39 kaleidoscopic 阅读(772) 评论(0) 推荐(0) 编辑
摘要:图解排序算法(一)之3种简单排序(选择,冒泡,直接插入) 图解排序算法(二)之希尔排序 图解排序算法(三)之堆排序 图解排序算法(四)之归并排序 图解排序算法(五)之快速排序 排序算法-八大排序实现和性能比较 图解排序算法(一)之3种简单排序(选择,冒泡,直接插入) 图解排序算法(二)之希尔排序 图 阅读全文
posted @ 2018-08-16 10:43 kaleidoscopic 阅读(194) 评论(0) 推荐(0) 编辑
摘要:分布式算法 在做服务器负载均衡时候可供选择的负载均衡的算法有很多,包括: 轮循算法(Round Robin)、哈希算法(HASH)、最少连接算法(Least Connection)、响应速度算法(Response Time)、加权法(Weighted )等。其中哈希算法是最为常用的算法. 典型的应用 阅读全文
posted @ 2018-08-15 16:50 kaleidoscopic 阅读(1483) 评论(1) 推荐(0) 编辑
摘要:红黑树的Java实现TreeMap 1. 红黑树的特性 Red-Black Tree ( RBT)也是一种自平衡二叉树,其统计性能要好于 AVL树 。它是在1972年由 鲁道夫·贝尔 发明的,它现代的名字是在 Leo J. Guibas 和 Robert Sedgewick 于1978年写的一篇论文 阅读全文
posted @ 2014-10-10 17:46 kaleidoscopic 阅读(778) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示