上一节(PHP内核探索之变量(3)- hash table),我们已经知道,数组在PHP的底层实际上是HashTable(链接法解决冲突),本文将对最常用的函数系列-数组操作的相关函数做进一步的跟踪。本文主要内容:PHP中提供的数组操作函数数组操作函数的实现结语参考文献一、PHP中提供的数组操作函数...
分类:
编程语言 时间:
2014-12-24 22:42:58
阅读次数:
153
leetcode新題,Majority Element ,难度easy。题意:给定一个长度为n的数组,找出majority element,所谓majority element就是出现次数大于n/2的那个数。
很简单的题目,解法很多:
Runtime: O(n2) — Brute force solution: Check each element if it is the majority element.
Runtime: O(n), Space: O(n) — Hash table: Maintain...
分类:
其他好文 时间:
2014-12-22 16:15:26
阅读次数:
141
功能:创建一个hash table,如果有处理冲突,则采用再散列法放置该元素
代码参考《零基础学数据结构》
代码如下:
root@ubuntu:/mnt/shared/appbox/hash# cat hash.c
#include
#include
#include
#include
typedef int KeyType;
typedef struct
{...
分类:
其他好文 时间:
2014-12-21 23:39:48
阅读次数:
355
在PHP中,除了zval, 另一个比较重要的数据结构非hash table莫属,例如我们最常见的数组,在底层便是hash table。除了数组,在线程安全(TSRM)、GC、资源管理、Global变量、ini配置管理中,几乎都有Hash table的踪迹(上一次我们也提到,符号表也是使用Hash table实现的)。那么,在PHP中,这种数据有什么特殊之处,结构是怎么实现的? 带着这些问题,我们开...
分类:
Web程序 时间:
2014-12-18 22:20:17
阅读次数:
355
在PHP中,除了zval, 另一个比较重要的数据结构非hash table莫属,例如我们最常见的数组,在底层便是hash table。除了数组,在线程安全(TSRM)、GC、资源管理、Global变量、ini配置管理中,几乎都有Hash table的踪迹(上一次我们也提到,符号表也是使用Hash ....
分类:
Web程序 时间:
2014-12-18 20:24:12
阅读次数:
356
aof,rdb是两种 redis持久化的机制。用于奔溃后,redis的恢复。 rdb的特性如下: Code: fork一个进程,遍历hash table,利用copy on write,把整个db dump保存下来。 save, shutdown, slave 命令会触发这个操作。...
分类:
数据库 时间:
2014-12-16 17:17:23
阅读次数:
257
STL源码剖析---关联容器
标准关联容器分为set和map两大类,包括multiset和multimap,这些容器的底层机制都是RB-tree.标准之外的关联容器有hashtable 以及以此hash table为底层机制而完成的hash_set(散列集合) hash_map(散列映射表) hash_multiset hash_multimap.
序列和关联容器各自的内部...
分类:
其他好文 时间:
2014-12-09 23:11:43
阅读次数:
465
散列表(Hash table,也叫哈希表),是根据关键字(Key value)而直接访问在内存存储位置的数据结构。也就是说,把键值通过一个函数的计算,映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。类似于数学中的映射关系。 现假设关键字的全域...
分类:
其他好文 时间:
2014-11-30 13:44:50
阅读次数:
150
摘要:
本章介绍了散列表(hash table)的概念、散列函数的设计及散列冲突的处理。散列表类似与字典的目录,查找的元素都有一个key与之对应,在实践当中,散列技术的效率是很高的,合理的设计散函数和冲突处理方法,可以使得在散列表中查找一个元素的期望时间为O(1)。散列表是普通数组概念的推广,在散列表中,不是直接把关键字用作数组下标,而是根据关键字通过散列函数计算出来的。书中介绍散列表非...
分类:
编程语言 时间:
2014-11-30 09:18:33
阅读次数:
333
Given an array of strings, return all groups of strings that are anagrams.
Note: All inputs will be in lower-case.
思路:对每一个单词的所有字母按照字典顺序排序,排序结果作为key,所有具有相同key的单词组合在一起成为一个Anagram group。最后返回所有的Anag...
分类:
其他好文 时间:
2014-11-25 23:42:35
阅读次数:
195