逝者如斯,不舍昼夜

尘世中一个迷途小书童,读书太少,想得太多
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 2 3 4 5 6 ··· 8 下一页

2016年6月4日

摘要: 红黑树一直是数据结构中的难点,大部分关于算法与数据结构的学习资料(包括《算法导论》)对于这部分的讲解都是上来就下定义,告诉我们红黑树这个性质那个性质,插入删除要注意1234点,但是基本没有讲为什么这样定义红色和黑色,让人理解起来十分费力。直到我看了下图这本书中关于红黑树部分的讲解,一时间豁然开朗,上 阅读全文

posted @ 2016-06-04 16:46 SteveWang 阅读(3568) 评论(0) 推荐(2) 编辑

2016年5月20日

摘要: AVL树的基本概念 AVL树是一种高度平衡的(height balanced)二叉搜索树:对每一个结点x,x的左子树与右子树的高度差(平衡因子)至多为1。 有人也许要问:为什么要有AVL树呢?它有什么作用呢? 我们先来看看二叉搜索树吧(因为AVL树本质上是一棵二叉搜索树),假设有这么一种极端的情况: 阅读全文

posted @ 2016-05-20 19:32 SteveWang 阅读(3987) 评论(0) 推荐(0) 编辑

2016年5月18日

摘要: 并查集 并查集(Union-Find Sets)是一种非常精巧而实用的集合,集合中的每个元素仍是一个集合,即它是集合的集合。在并查集中的元素(集合)内部进行查找操作以及并查集中的元素(集合)之间的合并操作的时间复杂度均可视为O(1),它主要用于处理一些不相交集合的合并问题,在合并之前,需要先判断两个 阅读全文

posted @ 2016-05-18 20:08 SteveWang 阅读(618) 评论(0) 推荐(0) 编辑

摘要: 约瑟夫问题的提法:n个人围成一个圆圈,首先第1个人从1开始,一个人一个人的顺时针报数,报到第m个人,令其出列;然后再从下一个人开始,从1顺时针报数,报到第m个人,再令其出列,…,如此下去,直到圆圈中只剩一个人为止,此人即为优胜者。 例如 n = 8 m = 3 该问题老师让我们在带头节点的单循环链表 阅读全文

posted @ 2016-05-18 09:36 SteveWang 阅读(1113) 评论(0) 推荐(0) 编辑

2016年4月17日

摘要: (2017腾讯实习生校招笔试题)Calvin和David正在玩取纽扣游戏,桌上一共有16个纽扣,两人轮流来取纽扣,每人每次可以选择取1个或3个或6个(不允许不取),谁取完最后的纽扣谁赢。Cavin和David都非常想赢得这个游戏,如果Cavin可以先取,Cavin的必胜策略下第一步应该取 A、1个 阅读全文

posted @ 2016-04-17 10:21 SteveWang 阅读(1406) 评论(0) 推荐(1) 编辑

2016年4月3日

摘要: Holiday Hotel Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 8302 Accepted: 3249 Description Mr. and Mrs. Smith are going to the seaside f 阅读全文

posted @ 2016-04-03 10:21 SteveWang 阅读(698) 评论(0) 推荐(0) 编辑

2016年3月29日

摘要: 目录 计数排序 基数排序 桶排序 上一篇文章中我们总结了常用的比较排序算法,主要有冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序等。 这篇文章中我们来探讨一下常用的非比较排序算法:计数排序,基数排序,桶排序。在一定条件下,它们的时间复杂度可以达到O(n)。 这里我们用到的唯一数据结构就是数 阅读全文

posted @ 2016-03-29 13:07 SteveWang 阅读(17053) 评论(3) 推荐(4) 编辑

2016年3月28日

摘要: 目录 冒泡排序 鸡尾酒排序 选择排序 插入排序 二分插入排序 希尔排序 归并排序 堆排序 快速排序 鸡尾酒排序 二分插入排序 希尔排序 我们通常所说的排序算法往往指的是内部排序算法,即数据记录在内存中进行排序。 排序算法大体可分为两种: 一种是比较排序,时间复杂度O(nlogn) ~ O(n^2), 阅读全文

posted @ 2016-03-28 22:13 SteveWang 阅读(380366) 评论(37) 推荐(97) 编辑

2016年3月19日

摘要: 方法一:以空间换时间,可以定义一个计数数组int count[101],用来对数组中数字出现的次数进行计数(只能针对数组中数字的范围1~100),count数组中最大的元素对应的下标,即为出现次数最多的那个数。Java代码如下: 上例是一种典型的空间换时间算法(所需数组空间的大小完全取决于数组中数字 阅读全文

posted @ 2016-03-19 19:59 SteveWang 阅读(28846) 评论(0) 推荐(2) 编辑

2016年3月13日

摘要: C99标准引入了变长数组,它允许使用变量定义数组各维。例如您可以使用下面的声明: 变长数组有一些限制,它必须是自动存储类的。这意味着变长数组必须在函数内部(包括主函数)或作为函数参量声明,而且声明时不可以进行初始化。 变长数组中的“变”并不表示在创建数组后可以修改其大小,变长数组的大小在创建后就是保 阅读全文

posted @ 2016-03-13 15:06 SteveWang 阅读(1959) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 ··· 8 下一页