OrdMap & HashMap

Notice the Trait. Usage of most functions is same as STL HashMap, you can find examples in test case. impl<K, V, S> HashMap<K, V, S> where K: Ord + Hash, S: BuildHasher impl<K, V> OrdMap<K, V> where K: Ord

Performance Test

Environment

Linux version 4.4.0-1049-aws (buildd@lcy01-amd64-001) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5) ) Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz

AVL Compare with RBTree

Somebody has already implemented RBTree, append rbtree = "0.1.5" to your Cargo.toml [dependencies], then run commend cargo run --release --example avl_cmp_rbtree * Obviously, optimized AVL is not worse than RBTree, and with the advantage of smaller height, it works better in searching case. It performs much better in clear case benefit from Fastbin ``` avl tree size 1000000 build time PT0.523259712S contain count 1000000 find time PT0.462317294S remove time PT0.456915364S insert after remove time PT0.442013480S clear time PT0.029607052S

rbtree size 1000000 build time PT0.615952198S contain count 1000000 find time PT0.570363857S remove time PT0.641548505S insert after remove time PT0.613216248S

clear time PT0.162732696S

avl tree size 10000000 build time PT11.083079762S contain count 10000000 find time PT9.908204148S remove time PT11.365612250S insert after remove time PT11.503721610S clear time PT0.474218222S

rbtree size 10000000 build time PT12.478368807S contain count 10000000 find time PT11.286116786S remove time PT12.362542744S insert after remove time PT12.062266663S

clear time PT2.479094958S

```

HashMap Competition

Run commend cargo run --release --example hash_map_cmp * Our HashMap performs better in case of insert and search. * When facing Collision Attack, the runtime complexity of STL HashMap can be O(n), but ours is O(log n). ``` test hash avl map insert time PT0.271783330S max node num of single index: 7 find 1000000, time PT0.244095811S remove time PT0.301936260S

test stl hash map insert time PT0.395503723S find 1000000, time PT0.252295697S

remove time PT0.291297694S

test hash avl map insert time PT1.611267195S max node num of single index: 8 find 5000000, time PT1.287719966S remove time PT1.672060759S

test stl hash map insert time PT2.149665549S find 5000000, time PT1.454428664S

remove time PT1.600728169S

```