利用默认的内存管理函数new/delete或malloc/free在堆上分配和释放内存会有一些额外的开销。
系统在接收到分配一定大小内存的请求时,首先查找内部维护的内存空闲块表,并且需要根据一定的算法(例如分配最先找到的不小于申请大小的内存块给请求者,或者分配最适于申请大小的内存块,或者分配最大空闲的内存块等)找到合适大小的空闲内存块。如果该空闲内存块过大,还需要切割成已分配的部分和较小的空...
分类:
其他好文 时间:
2014-05-15 02:56:28
阅读次数:
227
散列表(Hash table,也叫哈希表),是根据关键字(Key value)而直接访问在内存存储位置的数据结构。也就是说,它通过把键值通过一个函数的计算,映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。
一个通俗的例子是,为了查找电话簿中某人的号码,可以创建一个按照人名首字母顺序排列的表(即建立人名x到首字母F(x)的一个函数关系),在首...
分类:
编程语言 时间:
2014-05-15 02:27:50
阅读次数:
497
语法:CHARINDEX (expressionToFind ,expressionToSearch
[ ,start_location ] ) 参数: 1)expressionToFind 包含要查找的序列的字符表达式。expressionToFind最多包含
8000 个字符。 2)...
分类:
数据库 时间:
2014-05-15 02:24:32
阅读次数:
377
哈希表,也叫散列表,是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做哈希函数,存放记录的数组叫做哈希表。
哈希函数最主要的设计在于哈希函数和冲突处理的解决,其中哈希函数的设计方法主要有直接定址法和除留余数法;冲突处理的方法主要有开放定址法和链地址法。本文主要实现了一个基本存放字符串的哈希表,冲...
分类:
编程语言 时间:
2014-05-15 01:35:01
阅读次数:
396
用暴力水过了两个,正在沾沾自喜,当看到连续加的规模增加到4时,眼泪直接掉下来了,新想这下我这水货原形毕露了,没想到。。
我抱着试试看的心态,又写了一种水水的暴力解,每次固定前面的两个节点,后面的两个按照twosum那套来搞,搞完了移动之前固定的右边的那个点,最后再移动固定的左边的那个点,居然也过了。。
刚想起来其实twosum有一种很优雅的解法,建一个hash表,从头扫描数组,遇到一个数,查找...
分类:
其他好文 时间:
2014-05-15 01:09:26
阅读次数:
235
一、正则表达式:正则表达式(或称RegularExpression,简称RE)就是由普通字符(例如字符a到z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。简单的说,..
分类:
其他好文 时间:
2014-05-15 00:59:05
阅读次数:
440
1、二分查找常见错误:死循环:循环体外的初始化条件,与循环体内的迭代步骤,
都必须遵守一致的区间规则,也就是说,如果循环体初始化时,是以左闭右开区间为边界的,那么循环体内部的迭代也应该如此.如果两者不一致,会造成程序的错误.溢出:middle=left+(right-left)/2终止条件:一般来说...
分类:
其他好文 时间:
2014-05-14 23:26:03
阅读次数:
402
实际上也是一个二分查找的问题。
要找出范围,决定了当找到这个数时不能马上返回,如果找target最前面的那个位置,只有当这个位置等于target,且这个位置的前一个位置不等于target时,才能返回这个位置。如果找的是target最后面的那个位置,那么只有当这个位置等于target,且这个位置的后一个位置不等于target时,才会返回它。不满足返回条件时,下一次递归走什么位置也不一样,找前面的时...
分类:
其他好文 时间:
2014-05-14 21:58:25
阅读次数:
350
grep命令可以从文本中或者通过管道送过来的字符流中或一个"-"符号代替文件名来搜索精确或者模糊的匹配信息,grep家族有三个命令:grep,egrep,fgrep。grep支持正则表达式匹配查找egrep支持扩展正则表达式匹配查找fgrep不支持正则表达式匹配查找grep命令的格式:grep[OPT]‘PATTERN‘F..
分类:
系统相关 时间:
2014-05-14 17:24:27
阅读次数:
428
原因:在做中控系统中遇到了一个给用户批量分配角色的问题,刚开始想到的是循环插入,但立马给否定了,循环操作数据库开发者的大忌啊,于是查找手册找到数据写入看到批量操作:addAll(),测试成功,以为万事大吉了,但当第二次操作时提示失败,找原因,原来是数据库中已经存在的..
分类:
Web程序 时间:
2014-05-14 16:56:46
阅读次数:
360