面试复习
FreeeLinux
A3GM5H3647LPD4QVYMYAER2S47P4WZ2UKBXBCGZES2V62WEY2HULQA
展开
-
memcpy函数的实现
大致一看题目,memcpy函数,多简单的,核心不就是*dst++ = *src++吗,稍微加个参数检测,搞定。起始不要小看这道题,学问大着呢。要写好一个完整的memcpy至少要做到以下几点:1.判断输入指针是否为NULL。(长度可判可不判,因为长度如果2.考虑内存是否重叠问题。内存是否重叠问题,即当dst是src的后半部分时,对dst的copy会导致原src后半部分被覆盖,原创 2016-12-07 14:47:20 · 3918 阅读 · 0 评论 -
小范围排序 --使用堆排序
已知一个几乎有序的数组,几乎有序是指,如果把数组排好顺序的话,每个元素移动的距离可以不超过k,并且k相对于数组来说比较小。请选择一个合适的排序算法针对这个数据进行排序。给定一个int数组A,同时给定A的大小n和题意中的k,请返回排序后的数组。测试样例:[2,1,4,3,6,5,8,7,10,9],10,2返回:[1,2,3,4,5,6,7,8,9,10]分析:每个元原创 2016-12-09 01:09:05 · 687 阅读 · 0 评论 -
常用排序算法总结与分析
一:冒泡排序冒泡排序不用多说,教科书必备。主要思想就是把间隔两个数相比较,哪个大哪个往后放。每一次能冒出来未排序部分最大的一个数,所以冒n-1次就可以了。因为最后一个元素不需要再比较了。代码如下:template void bubble_sort(T arr, const int size){ for(int i=0; i<size-1; ++i){原创 2016-12-05 00:42:20 · 1083 阅读 · 0 评论 -
谈谈面试--哈希表系列
前言: 我以前在百度的mentor, 在面试时特喜欢考察哈希表. 那时的我满是疑惑和不解, 觉得这东西很基础, 不就的分桶理念(以空间换时间)和散列函数选择吗? 最多再考察点冲突解决方案. 为何不考察类似跳跃表, LSM树等高级数据结构呢? 随着工程实践的积累, 慢慢发现了自己当初的肤浅. 面试的切入点, 最好是大家所熟悉的, 但又能从中深度挖掘/剖析和具有区分度的. 本文结合转载 2017-02-01 16:10:44 · 4790 阅读 · 1 评论 -
memcached源码分析-----哈希表基本操作以及扩容过程
转载请注明出处:http://blog.csdn.net/luotuo44/article/details/42773231 温馨提示:本文用到了一些可以在启动memcached设置的全局变量。关于这些全局变量的含义可以参考《memcached启动参数详解》。对于这些全局变量,处理方式就像《如何阅读memcached源代码》所说的那样直接取其默认值。转载 2017-02-01 11:03:30 · 652 阅读 · 0 评论 -
深入理解哈希表(JAVA和Redis哈希表实现)
有两个字典,分别存有 100 条数据和 10000 条数据,如果用一个不存在的 key 去查找数据,在哪个字典中速度更快?有些计算机常识的读者都会立刻回答: “一样快,底层都用了哈希表,查找的时间复杂度为 O(1)”。然而实际情况真的是这样么?答案是否定的,存在少部分情况两者速度不一致,本文首先对哈希表做一个简短的总结,然后思考 Java 和 Redis 中对哈希表的实现,最后转载 2017-02-01 16:17:45 · 3618 阅读 · 0 评论 -
数据结构复习一:哈希表的总结
昨天复习了一下哈希表,今天来总结一下。哈希表概述哈希表,是根据关键码值(key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录。由于可以根据哈希函数直接得到对应位置,哈希表的查找时间复杂度为O(1)。这是一种以空间换时间的做法。通常哈希表的做法是采用数组实现,利用哈希函数把key转化成整形数字,然后将该数字对数组长度进行取余,取余结果当作数组的下标,将v原创 2017-02-01 16:06:26 · 2604 阅读 · 0 评论 -
学习目录
惊群”,看看nginx是怎么解决它的。原创 2017-02-27 14:06:32 · 490 阅读 · 0 评论