diff --git a/README.md b/README.md
index 93fbd1f..13ffe3d 100644
--- a/README.md
+++ b/README.md
@@ -9,15 +9,62 @@
[//]: # (![npm bundle size](https://img.shields.io/bundlephobia/min/data-structure-typed))
+## Why
+
English | 简体中文
-
-Data Structures of Javascript & TypeScript.
-
Do you envy C++ with [STL]() (std::), Python with [collections](), and Java with [java.util]() ? Well, no need to envy
anymore! JavaScript and TypeScript now have [data-structure-typed]().**`Benchmark`** compared with C++ STL. **`API standards`** aligned with ES6 and Java. **`Usability`** is comparable to Python
+
+### We provide data structures that are not available in JavaScript/TypeScript
+
+Heap, Binary Tree, RedBlack Tree, Linked List, Deque, Trie, Directed Graph, Undirected Graph, BST, AVL Tree, Priority Queue, Queue, Tree Multiset, Linked List.
+
+
+### Performance superior to native JavaScript/TypeScript
+
+**`Queue vs. native Array, 100,000 scale`**
+
+
+
+ Test Methods |
+ Time Taken (ms) |
+
+
+
+
+ Queue push & shift |
+ 5.83 |
+
+
+ Array push & shift |
+ 2829.59 |
+
+
+
+
+**`Deque vs. native Array, 100,000 scale`**
+
+
+
+ Test Methods |
+ Time Taken (ms) |
+
+
+
+
+ Deque unshift & shift |
+ 2.44 |
+
+
+ Array unshift & shift |
+ 4750.37 |
+
+
+
+
[//]: # (![Branches](https://img.shields.io/badge/branches-55.47%25-red.svg?style=flat))
[//]: # (![Statements](https://img.shields.io/badge/statements-67%25-red.svg?style=flat))
diff --git a/README_zh-CN.md b/README_zh-CN.md
index b9a00c8..429384b 100644
--- a/README_zh-CN.md
+++ b/README_zh-CN.md
@@ -9,6 +9,8 @@
[//]: # (![npm bundle size](https://img.shields.io/bundlephobia/min/data-structure-typed))
+## 为什么
+
English | 简体中文
JavaScript和TypeScript的数据结构。
@@ -19,6 +21,54 @@ JavaScript和TypeScript的数据结构。
**`基准测试`** 与C++ STL相比。**`API 标准`** 与ES6和Java对齐。**`易用性`** 可与Python媲美。
+
+### 提供了JavaScript/TypeScript中没有的数据结构
+
+Heap, Binary Tree, RedBlack Tree, Linked List, Deque, Trie, Directed Graph, Undirected Graph, BST, AVL Tree, Priority Queue, Queue, Tree Multiset, Linked List.
+
+
+### 性能超越原生JavaScript/TypeScript
+
+**`Queue和原生Array, 在100,000数据规模下性能对比`**
+
+
+
+ Test Methods |
+ Time Taken (ms) |
+
+
+
+
+ Queue push & shift |
+ 5.83 |
+
+
+ Array push & shift |
+ 2829.59 |
+
+
+
+
+**`Deque和原生Array在100,000数据规模下的性能对比`**
+
+
+
+ Test Methods |
+ Time Taken (ms) |
+
+
+
+
+ Deque unshift & shift |
+ 2.44 |
+
+
+ Array unshift & shift |
+ 4750.37 |
+
+
+
+
[//]: # (![Branches](https://img.shields.io/badge/branches-55.47%25-red.svg?style=flat))
[//]: # (![Statements](https://img.shields.io/badge/statements-67%25-red.svg?style=flat))
diff --git a/test/performance/data-structures/queue/deque.test.ts b/test/performance/data-structures/queue/deque.test.ts
index d8677bd..ac701f3 100644
--- a/test/performance/data-structures/queue/deque.test.ts
+++ b/test/performance/data-structures/queue/deque.test.ts
@@ -5,7 +5,7 @@ import { magnitude } from '../../../utils';
import { isCompetitor } from '../../../config';
export const suite = new Benchmark.Suite();
-const { LINEAR } = magnitude;
+const { LINEAR, HUNDRED_THOUSAND } = magnitude;
suite.add(`${LINEAR.toLocaleString()} push`, () => {
const deque = new Deque();
@@ -26,16 +26,28 @@ suite.add(`${LINEAR.toLocaleString()} push & pop`, () => {
for (let i = 0; i < LINEAR; i++) _deque.push(i);
for (let i = 0; i < LINEAR; i++) _deque.pop();
-});
-suite.add(`${LINEAR.toLocaleString()} push & shift`, () => {
- const _deque = new Deque();
+})
+ .add(`${HUNDRED_THOUSAND.toLocaleString()} push & shift`, () => {
+ const _deque = new Deque();
- for (let i = 0; i < LINEAR; i++) _deque.push(i);
- for (let i = 0; i < LINEAR; i++) _deque.shift();
-});
-suite.add(`${LINEAR.toLocaleString()} unshift & shift`, () => {
- const _deque = new Deque();
+ for (let i = 0; i < HUNDRED_THOUSAND; i++) _deque.push(i);
+ for (let i = 0; i < HUNDRED_THOUSAND; i++) _deque.shift();
+ })
+ .add(`${HUNDRED_THOUSAND.toLocaleString()} Array push & shift`, () => {
+ const _deque = new Array();
- for (let i = 0; i < LINEAR; i++) _deque.unshift(i);
- for (let i = 0; i < LINEAR; i++) _deque.shift();
-});
+ for (let i = 0; i < HUNDRED_THOUSAND; i++) _deque.push(i);
+ for (let i = 0; i < HUNDRED_THOUSAND; i++) _deque.shift();
+ })
+ .add(`${HUNDRED_THOUSAND.toLocaleString()} unshift & shift`, () => {
+ const _deque = new Deque();
+
+ for (let i = 0; i < HUNDRED_THOUSAND; i++) _deque.unshift(i);
+ for (let i = 0; i < HUNDRED_THOUSAND; i++) _deque.shift();
+ })
+ .add(`${HUNDRED_THOUSAND.toLocaleString()} Array unshift & shift`, () => {
+ const _deque = new Array();
+
+ for (let i = 0; i < HUNDRED_THOUSAND; i++) _deque.unshift(i);
+ for (let i = 0; i < HUNDRED_THOUSAND; i++) _deque.shift();
+ });
diff --git a/test/performance/data-structures/queue/queue.test.ts b/test/performance/data-structures/queue/queue.test.ts
index 7812875..b6cf5ef 100644
--- a/test/performance/data-structures/queue/queue.test.ts
+++ b/test/performance/data-structures/queue/queue.test.ts
@@ -51,7 +51,7 @@ suite.add(`${HUNDRED_THOUSAND.toLocaleString()} Array push & shift`, () => {
}
for (let i = 0; i < HUNDRED_THOUSAND; i++) {
- arr.shift();
+ arr.pop();
}
});