forked from nonstriater/Learn-Algorithms
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
nonstriater
committed
Dec 1, 2015
1 parent
4274c48
commit fc00cc6
Showing
4 changed files
with
100 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,32 +1,105 @@ | ||
|
||
|
||
数据结构往往是一个项目系统的核心,理解项目的数据结构和算法,才能真正理解项目的工作原理。这里罗列出常用开源系统中用到的数据结构和算法。 | ||
|
||
数据结构往往是一个项目系统的核心,理解项目的数据结构和算法,才能真正理解项目的工作原理。这里聊聊常用`开源系统`中用到的数据结构和算法。 | ||
|
||
|
||
每一条说清楚: | ||
1. 项目简介 | ||
2. 用到算法的功能介绍 | ||
3. 用到的算法 | ||
|
||
##MYSQL 背后的数据结构和算法 | ||
1. 项目简介 | ||
2. 用到的算法介绍 | ||
|
||
## [YYCache](https://github.com/ibireme/YYCache.git) | ||
|
||
### 项目简介 | ||
|
||
YYCache 是iOS系统上一套线程安全的Key-Value缓存实现,使用Objective-C语言实现。YYCache使用双向链表+hash表结构实现。 | ||
|
||
### 用到的算法介绍 | ||
|
||
先来看一下它的数据结构: | ||
|
||
``` | ||
// 这是一个节点的结构 | ||
@interface _YYLinkedMapNode : NSObject { | ||
@package | ||
__unsafe_unretained _YYLinkedMapNode *_prev; // retained by dic | ||
__unsafe_unretained _YYLinkedMapNode *_next; // retained by dic | ||
id _key; | ||
id _value; | ||
NSUInteger _cost; | ||
NSTimeInterval _time; | ||
} | ||
``` | ||
|
||
这里定义了一个双向链表结构,_prev,_next分别指向前缀节点和后缀节点。 | ||
|
||
``` | ||
@interface _YYLinkedMap : NSObject { | ||
@package | ||
CFMutableDictionaryRef _dic; // do not set object directly | ||
NSUInteger _totalCost; | ||
NSUInteger _totalCount; | ||
_YYLinkedMapNode *_head; // MRU, do not change it directly | ||
_YYLinkedMapNode *_tail; // LRU, do not change it directly | ||
BOOL _releaseOnMainThread; | ||
BOOL _releaseAsynchronously; | ||
} | ||
``` | ||
_dic 就是存储缓存节点的hash结构。 | ||
|
||
|
||
## [cocos2d-objc](https://github.com/cocos2d/cocos2d-objc) | ||
|
||
### 项目简介 | ||
|
||
|
||
### 用到的算法介绍 | ||
|
||
|
||
|
||
## [AsyncDisplayKit](https://github.com/facebook/AsyncDisplayKit) | ||
|
||
### 项目简介 | ||
|
||
|
||
http://blogread.cn/it/article/4088?f=wb2 | ||
### 用到的算法介绍 | ||
|
||
索引使用B+树 | ||
|
||
## Redis | ||
## [realm-cocoa](https://github.com/realm/realm-cocoa) | ||
|
||
|
||
## MongoDB | ||
|
||
## [YapDatabase](https://github.com/yapstudios/YapDatabase) | ||
|
||
## Nginx | ||
|
||
|
||
##Cocos2D-iPhone | ||
## [FTCoreText](https://github.com/Ridiculous-Innovations/FTCoreText) | ||
|
||
|
||
## JavaScript 对象存储结构 | ||
## [Redis](https://github.com/antirez/redis) | ||
|
||
|
||
|
||
## [memcached](https://github.com/memcached/memcached) | ||
|
||
|
||
|
||
## [Nginx](https://github.com/nginx/nginx) | ||
|
||
|
||
|
||
## [Node](https://github.com/nodejs/node) | ||
|
||
V8引擎 | ||
|
||
## [React](https://github.com/facebook/react) | ||
|
||
|
||
## [react-native](https://github.com/facebook/react-native) | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters