data-structure-typed 1.45.1 → 1.45.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -1
- package/COMMANDS.md +6 -1
- package/README.md +56 -16
- package/benchmark/report.html +18 -15
- package/benchmark/report.json +157 -116
- package/dist/cjs/data-structures/heap/heap.js +21 -12
- package/dist/cjs/data-structures/heap/heap.js.map +1 -1
- package/dist/mjs/data-structures/heap/heap.js +21 -12
- package/dist/umd/data-structure-typed.js +9 -11
- package/dist/umd/data-structure-typed.min.js +1 -1
- package/dist/umd/data-structure-typed.min.js.map +1 -1
- package/package.json +1 -1
- package/src/data-structures/heap/heap.ts +22 -12
- package/test/performance/data-structures/binary-tree/rb-tree.test.ts +3 -3
- package/test/performance/data-structures/comparation.test.ts +142 -0
- package/test/performance/data-structures/hash/hash-map.test.ts +2 -2
- package/test/performance/data-structures/linked-list/doubly-linked-list.test.ts +1 -1
- package/test/performance/data-structures/priority-queue/priority-queue.test.ts +1 -1
- package/test/performance/data-structures/queue/deque.test.ts +1 -1
- package/test/performance/data-structures/queue/queue.test.ts +1 -1
- package/test/performance/data-structures/stack/stack.test.ts +2 -2
- package/test/performance/reportor.ts +34 -8
- package/test/unit/data-structures/heap/heap.test.ts +38 -0
- package/test/utils/index.ts +1 -0
- package/test/utils/performanc.ts +7 -0
package/benchmark/report.json
CHANGED
|
@@ -1,29 +1,70 @@
|
|
|
1
1
|
{
|
|
2
|
+
"comparation": {
|
|
3
|
+
"benchmarks": [
|
|
4
|
+
{
|
|
5
|
+
"test name": "SRC 10,000 add",
|
|
6
|
+
"time taken (ms)": "0.59",
|
|
7
|
+
"executions per sec": "1701.78",
|
|
8
|
+
"sample deviation": "3.28e-5"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"test name": "CJS 10,000 add",
|
|
12
|
+
"time taken (ms)": "0.61",
|
|
13
|
+
"executions per sec": "1648.70",
|
|
14
|
+
"sample deviation": "6.98e-5"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"test name": "MJS 10,000 add",
|
|
18
|
+
"time taken (ms)": "0.59",
|
|
19
|
+
"executions per sec": "1691.86",
|
|
20
|
+
"sample deviation": "2.44e-5"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"test name": "SRC PQ 10,000 add & pop",
|
|
24
|
+
"time taken (ms)": "4.97",
|
|
25
|
+
"executions per sec": "201.19",
|
|
26
|
+
"sample deviation": "1.37e-4"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"test name": "CJS PQ 10,000 add & pop",
|
|
30
|
+
"time taken (ms)": "4.93",
|
|
31
|
+
"executions per sec": "202.70",
|
|
32
|
+
"sample deviation": "5.60e-5"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"test name": "MJS PQ 10,000 add & pop",
|
|
36
|
+
"time taken (ms)": "4.98",
|
|
37
|
+
"executions per sec": "200.74",
|
|
38
|
+
"sample deviation": "4.39e-4"
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
"testName": "comparation"
|
|
42
|
+
},
|
|
2
43
|
"avl-tree": {
|
|
3
44
|
"benchmarks": [
|
|
4
45
|
{
|
|
5
46
|
"test name": "10,000 add randomly",
|
|
6
|
-
"time taken (ms)": "
|
|
7
|
-
"executions per sec": "
|
|
47
|
+
"time taken (ms)": "32.27",
|
|
48
|
+
"executions per sec": "30.99",
|
|
8
49
|
"sample deviation": "0.00"
|
|
9
50
|
},
|
|
10
51
|
{
|
|
11
52
|
"test name": "10,000 add & delete randomly",
|
|
12
|
-
"time taken (ms)": "
|
|
13
|
-
"executions per sec": "13.
|
|
53
|
+
"time taken (ms)": "73.67",
|
|
54
|
+
"executions per sec": "13.57",
|
|
14
55
|
"sample deviation": "0.00"
|
|
15
56
|
},
|
|
16
57
|
{
|
|
17
58
|
"test name": "10,000 addMany",
|
|
18
|
-
"time taken (ms)": "
|
|
19
|
-
"executions per sec": "
|
|
59
|
+
"time taken (ms)": "41.81",
|
|
60
|
+
"executions per sec": "23.92",
|
|
20
61
|
"sample deviation": "0.00"
|
|
21
62
|
},
|
|
22
63
|
{
|
|
23
64
|
"test name": "10,000 get",
|
|
24
|
-
"time taken (ms)": "
|
|
25
|
-
"executions per sec": "
|
|
26
|
-
"sample deviation": "
|
|
65
|
+
"time taken (ms)": "29.21",
|
|
66
|
+
"executions per sec": "34.24",
|
|
67
|
+
"sample deviation": "0.00"
|
|
27
68
|
}
|
|
28
69
|
],
|
|
29
70
|
"testName": "avl-tree"
|
|
@@ -32,45 +73,45 @@
|
|
|
32
73
|
"benchmarks": [
|
|
33
74
|
{
|
|
34
75
|
"test name": "1,000 add randomly",
|
|
35
|
-
"time taken (ms)": "
|
|
36
|
-
"executions per sec": "
|
|
37
|
-
"sample deviation": "
|
|
76
|
+
"time taken (ms)": "13.82",
|
|
77
|
+
"executions per sec": "72.38",
|
|
78
|
+
"sample deviation": "0.00"
|
|
38
79
|
},
|
|
39
80
|
{
|
|
40
81
|
"test name": "1,000 add & delete randomly",
|
|
41
|
-
"time taken (ms)": "
|
|
42
|
-
"executions per sec": "62.
|
|
43
|
-
"sample deviation": "
|
|
82
|
+
"time taken (ms)": "16.01",
|
|
83
|
+
"executions per sec": "62.45",
|
|
84
|
+
"sample deviation": "5.80e-4"
|
|
44
85
|
},
|
|
45
86
|
{
|
|
46
87
|
"test name": "1,000 addMany",
|
|
47
|
-
"time taken (ms)": "
|
|
48
|
-
"executions per sec": "
|
|
49
|
-
"sample deviation": "
|
|
88
|
+
"time taken (ms)": "12.30",
|
|
89
|
+
"executions per sec": "81.33",
|
|
90
|
+
"sample deviation": "0.01"
|
|
50
91
|
},
|
|
51
92
|
{
|
|
52
93
|
"test name": "1,000 get",
|
|
53
|
-
"time taken (ms)": "
|
|
54
|
-
"executions per sec": "
|
|
55
|
-
"sample deviation": "
|
|
94
|
+
"time taken (ms)": "19.75",
|
|
95
|
+
"executions per sec": "50.63",
|
|
96
|
+
"sample deviation": "0.01"
|
|
56
97
|
},
|
|
57
98
|
{
|
|
58
99
|
"test name": "1,000 dfs",
|
|
59
|
-
"time taken (ms)": "
|
|
60
|
-
"executions per sec": "6.
|
|
100
|
+
"time taken (ms)": "157.12",
|
|
101
|
+
"executions per sec": "6.36",
|
|
61
102
|
"sample deviation": "0.00"
|
|
62
103
|
},
|
|
63
104
|
{
|
|
64
105
|
"test name": "1,000 bfs",
|
|
65
|
-
"time taken (ms)": "
|
|
66
|
-
"executions per sec": "17.
|
|
67
|
-
"sample deviation": "
|
|
106
|
+
"time taken (ms)": "56.72",
|
|
107
|
+
"executions per sec": "17.63",
|
|
108
|
+
"sample deviation": "4.27e-4"
|
|
68
109
|
},
|
|
69
110
|
{
|
|
70
111
|
"test name": "1,000 morris",
|
|
71
|
-
"time taken (ms)": "
|
|
72
|
-
"executions per sec": "
|
|
73
|
-
"sample deviation": "0.
|
|
112
|
+
"time taken (ms)": "334.97",
|
|
113
|
+
"executions per sec": "2.99",
|
|
114
|
+
"sample deviation": "0.03"
|
|
74
115
|
}
|
|
75
116
|
],
|
|
76
117
|
"testName": "binary-tree"
|
|
@@ -79,27 +120,27 @@
|
|
|
79
120
|
"benchmarks": [
|
|
80
121
|
{
|
|
81
122
|
"test name": "10,000 add randomly",
|
|
82
|
-
"time taken (ms)": "
|
|
83
|
-
"executions per sec": "
|
|
84
|
-
"sample deviation": "
|
|
123
|
+
"time taken (ms)": "28.30",
|
|
124
|
+
"executions per sec": "35.34",
|
|
125
|
+
"sample deviation": "0.00"
|
|
85
126
|
},
|
|
86
127
|
{
|
|
87
128
|
"test name": "10,000 add & delete randomly",
|
|
88
|
-
"time taken (ms)": "
|
|
89
|
-
"executions per sec": "
|
|
129
|
+
"time taken (ms)": "67.47",
|
|
130
|
+
"executions per sec": "14.82",
|
|
90
131
|
"sample deviation": "0.00"
|
|
91
132
|
},
|
|
92
133
|
{
|
|
93
134
|
"test name": "10,000 addMany",
|
|
94
|
-
"time taken (ms)": "29.
|
|
95
|
-
"executions per sec": "
|
|
135
|
+
"time taken (ms)": "29.25",
|
|
136
|
+
"executions per sec": "34.18",
|
|
96
137
|
"sample deviation": "0.00"
|
|
97
138
|
},
|
|
98
139
|
{
|
|
99
140
|
"test name": "10,000 get",
|
|
100
|
-
"time taken (ms)": "
|
|
101
|
-
"executions per sec": "
|
|
102
|
-
"sample deviation": "
|
|
141
|
+
"time taken (ms)": "30.53",
|
|
142
|
+
"executions per sec": "32.75",
|
|
143
|
+
"sample deviation": "0.01"
|
|
103
144
|
}
|
|
104
145
|
],
|
|
105
146
|
"testName": "bst"
|
|
@@ -108,21 +149,21 @@
|
|
|
108
149
|
"benchmarks": [
|
|
109
150
|
{
|
|
110
151
|
"test name": "100,000 add",
|
|
111
|
-
"time taken (ms)": "
|
|
112
|
-
"executions per sec": "
|
|
152
|
+
"time taken (ms)": "96.67",
|
|
153
|
+
"executions per sec": "10.34",
|
|
113
154
|
"sample deviation": "0.01"
|
|
114
155
|
},
|
|
115
156
|
{
|
|
116
157
|
"test name": "100,000 add & delete randomly",
|
|
117
|
-
"time taken (ms)": "
|
|
118
|
-
"executions per sec": "4.
|
|
119
|
-
"sample deviation": "0.
|
|
158
|
+
"time taken (ms)": "224.85",
|
|
159
|
+
"executions per sec": "4.45",
|
|
160
|
+
"sample deviation": "0.01"
|
|
120
161
|
},
|
|
121
162
|
{
|
|
122
163
|
"test name": "100,000 getNode",
|
|
123
|
-
"time taken (ms)": "
|
|
124
|
-
"executions per sec": "
|
|
125
|
-
"sample deviation": "
|
|
164
|
+
"time taken (ms)": "40.83",
|
|
165
|
+
"executions per sec": "24.49",
|
|
166
|
+
"sample deviation": "2.73e-4"
|
|
126
167
|
}
|
|
127
168
|
],
|
|
128
169
|
"testName": "rb-tree"
|
|
@@ -132,44 +173,44 @@
|
|
|
132
173
|
{
|
|
133
174
|
"test name": "1,000 addVertex",
|
|
134
175
|
"time taken (ms)": "0.11",
|
|
135
|
-
"executions per sec": "
|
|
136
|
-
"sample deviation": "
|
|
176
|
+
"executions per sec": "9364.63",
|
|
177
|
+
"sample deviation": "1.25e-5"
|
|
137
178
|
},
|
|
138
179
|
{
|
|
139
180
|
"test name": "1,000 addEdge",
|
|
140
|
-
"time taken (ms)": "6.
|
|
141
|
-
"executions per sec": "
|
|
142
|
-
"sample deviation": "
|
|
181
|
+
"time taken (ms)": "6.18",
|
|
182
|
+
"executions per sec": "161.78",
|
|
183
|
+
"sample deviation": "1.26e-4"
|
|
143
184
|
},
|
|
144
185
|
{
|
|
145
186
|
"test name": "1,000 getVertex",
|
|
146
187
|
"time taken (ms)": "0.05",
|
|
147
|
-
"executions per sec": "2.
|
|
148
|
-
"sample deviation": "
|
|
188
|
+
"executions per sec": "2.12e+4",
|
|
189
|
+
"sample deviation": "4.19e-6"
|
|
149
190
|
},
|
|
150
191
|
{
|
|
151
192
|
"test name": "1,000 getEdge",
|
|
152
|
-
"time taken (ms)": "
|
|
153
|
-
"executions per sec": "
|
|
154
|
-
"sample deviation": "0.
|
|
193
|
+
"time taken (ms)": "25.98",
|
|
194
|
+
"executions per sec": "38.50",
|
|
195
|
+
"sample deviation": "0.01"
|
|
155
196
|
},
|
|
156
197
|
{
|
|
157
198
|
"test name": "tarjan",
|
|
158
|
-
"time taken (ms)": "
|
|
159
|
-
"executions per sec": "4.
|
|
160
|
-
"sample deviation": "0.
|
|
199
|
+
"time taken (ms)": "240.23",
|
|
200
|
+
"executions per sec": "4.16",
|
|
201
|
+
"sample deviation": "0.02"
|
|
161
202
|
},
|
|
162
203
|
{
|
|
163
204
|
"test name": "tarjan all",
|
|
164
|
-
"time taken (ms)": "
|
|
165
|
-
"executions per sec": "4.
|
|
205
|
+
"time taken (ms)": "227.36",
|
|
206
|
+
"executions per sec": "4.40",
|
|
166
207
|
"sample deviation": "0.00"
|
|
167
208
|
},
|
|
168
209
|
{
|
|
169
210
|
"test name": "topologicalSort",
|
|
170
|
-
"time taken (ms)": "
|
|
171
|
-
"executions per sec": "5.
|
|
172
|
-
"sample deviation": "0.
|
|
211
|
+
"time taken (ms)": "185.85",
|
|
212
|
+
"executions per sec": "5.38",
|
|
213
|
+
"sample deviation": "0.00"
|
|
173
214
|
}
|
|
174
215
|
],
|
|
175
216
|
"testName": "directed-graph"
|
|
@@ -178,15 +219,15 @@
|
|
|
178
219
|
"benchmarks": [
|
|
179
220
|
{
|
|
180
221
|
"test name": "10,000 set",
|
|
181
|
-
"time taken (ms)": "
|
|
182
|
-
"executions per sec": "
|
|
183
|
-
"sample deviation": "1.
|
|
222
|
+
"time taken (ms)": "1.00",
|
|
223
|
+
"executions per sec": "1001.31",
|
|
224
|
+
"sample deviation": "1.82e-5"
|
|
184
225
|
},
|
|
185
226
|
{
|
|
186
227
|
"test name": "10,000 set & get",
|
|
187
|
-
"time taken (ms)": "1.
|
|
188
|
-
"executions per sec": "
|
|
189
|
-
"sample deviation": "
|
|
228
|
+
"time taken (ms)": "1.54",
|
|
229
|
+
"executions per sec": "650.14",
|
|
230
|
+
"sample deviation": "4.87e-5"
|
|
190
231
|
}
|
|
191
232
|
],
|
|
192
233
|
"testName": "hash-map"
|
|
@@ -195,15 +236,15 @@
|
|
|
195
236
|
"benchmarks": [
|
|
196
237
|
{
|
|
197
238
|
"test name": "10,000 add & pop",
|
|
198
|
-
"time taken (ms)": "
|
|
199
|
-
"executions per sec": "
|
|
200
|
-
"sample deviation": "
|
|
239
|
+
"time taken (ms)": "6.97",
|
|
240
|
+
"executions per sec": "143.49",
|
|
241
|
+
"sample deviation": "5.27e-4"
|
|
201
242
|
},
|
|
202
243
|
{
|
|
203
244
|
"test name": "10,000 fib add & pop",
|
|
204
|
-
"time taken (ms)": "
|
|
205
|
-
"executions per sec": "2.
|
|
206
|
-
"sample deviation": "0.
|
|
245
|
+
"time taken (ms)": "378.40",
|
|
246
|
+
"executions per sec": "2.64",
|
|
247
|
+
"sample deviation": "0.05"
|
|
207
248
|
}
|
|
208
249
|
],
|
|
209
250
|
"testName": "heap"
|
|
@@ -212,21 +253,21 @@
|
|
|
212
253
|
"benchmarks": [
|
|
213
254
|
{
|
|
214
255
|
"test name": "1,000,000 unshift",
|
|
215
|
-
"time taken (ms)": "
|
|
216
|
-
"executions per sec": "4.
|
|
217
|
-
"sample deviation": "0.
|
|
256
|
+
"time taken (ms)": "224.55",
|
|
257
|
+
"executions per sec": "4.45",
|
|
258
|
+
"sample deviation": "0.07"
|
|
218
259
|
},
|
|
219
260
|
{
|
|
220
261
|
"test name": "1,000,000 unshift & shift",
|
|
221
|
-
"time taken (ms)": "
|
|
222
|
-
"executions per sec": "5.
|
|
223
|
-
"sample deviation": "0.
|
|
262
|
+
"time taken (ms)": "182.17",
|
|
263
|
+
"executions per sec": "5.49",
|
|
264
|
+
"sample deviation": "0.06"
|
|
224
265
|
},
|
|
225
266
|
{
|
|
226
267
|
"test name": "1,000,000 insertBefore",
|
|
227
|
-
"time taken (ms)": "
|
|
228
|
-
"executions per sec": "
|
|
229
|
-
"sample deviation": "0.
|
|
268
|
+
"time taken (ms)": "342.63",
|
|
269
|
+
"executions per sec": "2.92",
|
|
270
|
+
"sample deviation": "0.08"
|
|
230
271
|
}
|
|
231
272
|
],
|
|
232
273
|
"testName": "doubly-linked-list"
|
|
@@ -235,15 +276,15 @@
|
|
|
235
276
|
"benchmarks": [
|
|
236
277
|
{
|
|
237
278
|
"test name": "10,000 push & pop",
|
|
238
|
-
"time taken (ms)": "
|
|
239
|
-
"executions per sec": "4.
|
|
279
|
+
"time taken (ms)": "222.42",
|
|
280
|
+
"executions per sec": "4.50",
|
|
240
281
|
"sample deviation": "0.01"
|
|
241
282
|
},
|
|
242
283
|
{
|
|
243
284
|
"test name": "10,000 insertBefore",
|
|
244
|
-
"time taken (ms)": "
|
|
245
|
-
"executions per sec": "
|
|
246
|
-
"sample deviation": "0.
|
|
285
|
+
"time taken (ms)": "248.39",
|
|
286
|
+
"executions per sec": "4.03",
|
|
287
|
+
"sample deviation": "0.00"
|
|
247
288
|
}
|
|
248
289
|
],
|
|
249
290
|
"testName": "singly-linked-list"
|
|
@@ -252,9 +293,9 @@
|
|
|
252
293
|
"benchmarks": [
|
|
253
294
|
{
|
|
254
295
|
"test name": "10,000 refill & poll",
|
|
255
|
-
"time taken (ms)": "11.
|
|
256
|
-
"executions per sec": "
|
|
257
|
-
"sample deviation": "1.
|
|
296
|
+
"time taken (ms)": "11.83",
|
|
297
|
+
"executions per sec": "84.55",
|
|
298
|
+
"sample deviation": "1.45e-4"
|
|
258
299
|
}
|
|
259
300
|
],
|
|
260
301
|
"testName": "max-priority-queue"
|
|
@@ -263,9 +304,9 @@
|
|
|
263
304
|
"benchmarks": [
|
|
264
305
|
{
|
|
265
306
|
"test name": "10,000 add & pop",
|
|
266
|
-
"time taken (ms)": "
|
|
267
|
-
"executions per sec": "
|
|
268
|
-
"sample deviation": "
|
|
307
|
+
"time taken (ms)": "10.79",
|
|
308
|
+
"executions per sec": "92.72",
|
|
309
|
+
"sample deviation": "2.01e-4"
|
|
269
310
|
}
|
|
270
311
|
],
|
|
271
312
|
"testName": "priority-queue"
|
|
@@ -274,15 +315,15 @@
|
|
|
274
315
|
"benchmarks": [
|
|
275
316
|
{
|
|
276
317
|
"test name": "1,000,000 push",
|
|
277
|
-
"time taken (ms)": "
|
|
278
|
-
"executions per sec": "4.
|
|
279
|
-
"sample deviation": "0.
|
|
318
|
+
"time taken (ms)": "231.33",
|
|
319
|
+
"executions per sec": "4.32",
|
|
320
|
+
"sample deviation": "0.06"
|
|
280
321
|
},
|
|
281
322
|
{
|
|
282
323
|
"test name": "1,000,000 shift",
|
|
283
|
-
"time taken (ms)": "
|
|
284
|
-
"executions per sec": "
|
|
285
|
-
"sample deviation": "0.
|
|
324
|
+
"time taken (ms)": "27.64",
|
|
325
|
+
"executions per sec": "36.17",
|
|
326
|
+
"sample deviation": "0.01"
|
|
286
327
|
}
|
|
287
328
|
],
|
|
288
329
|
"testName": "deque"
|
|
@@ -291,14 +332,14 @@
|
|
|
291
332
|
"benchmarks": [
|
|
292
333
|
{
|
|
293
334
|
"test name": "1,000,000 push",
|
|
294
|
-
"time taken (ms)": "
|
|
295
|
-
"executions per sec": "
|
|
335
|
+
"time taken (ms)": "46.16",
|
|
336
|
+
"executions per sec": "21.66",
|
|
296
337
|
"sample deviation": "0.01"
|
|
297
338
|
},
|
|
298
339
|
{
|
|
299
340
|
"test name": "1,000,000 push & shift",
|
|
300
|
-
"time taken (ms)": "
|
|
301
|
-
"executions per sec": "12.
|
|
341
|
+
"time taken (ms)": "82.18",
|
|
342
|
+
"executions per sec": "12.17",
|
|
302
343
|
"sample deviation": "0.00"
|
|
303
344
|
}
|
|
304
345
|
],
|
|
@@ -308,15 +349,15 @@
|
|
|
308
349
|
"benchmarks": [
|
|
309
350
|
{
|
|
310
351
|
"test name": "1,000,000 push",
|
|
311
|
-
"time taken (ms)": "
|
|
312
|
-
"executions per sec": "22.
|
|
352
|
+
"time taken (ms)": "45.45",
|
|
353
|
+
"executions per sec": "22.00",
|
|
313
354
|
"sample deviation": "0.01"
|
|
314
355
|
},
|
|
315
356
|
{
|
|
316
357
|
"test name": "1,000,000 push & pop",
|
|
317
|
-
"time taken (ms)": "
|
|
318
|
-
"executions per sec": "
|
|
319
|
-
"sample deviation": "0.
|
|
358
|
+
"time taken (ms)": "50.10",
|
|
359
|
+
"executions per sec": "19.96",
|
|
360
|
+
"sample deviation": "0.01"
|
|
320
361
|
}
|
|
321
362
|
],
|
|
322
363
|
"testName": "stack"
|
|
@@ -325,14 +366,14 @@
|
|
|
325
366
|
"benchmarks": [
|
|
326
367
|
{
|
|
327
368
|
"test name": "100,000 push",
|
|
328
|
-
"time taken (ms)": "
|
|
329
|
-
"executions per sec": "
|
|
369
|
+
"time taken (ms)": "46.25",
|
|
370
|
+
"executions per sec": "21.62",
|
|
330
371
|
"sample deviation": "0.00"
|
|
331
372
|
},
|
|
332
373
|
{
|
|
333
374
|
"test name": "100,000 getWords",
|
|
334
|
-
"time taken (ms)": "
|
|
335
|
-
"executions per sec": "
|
|
375
|
+
"time taken (ms)": "65.17",
|
|
376
|
+
"executions per sec": "15.34",
|
|
336
377
|
"sample deviation": "0.00"
|
|
337
378
|
}
|
|
338
379
|
],
|
|
@@ -271,19 +271,28 @@ class Heap {
|
|
|
271
271
|
* @param index - The index of the newly added element.
|
|
272
272
|
*/
|
|
273
273
|
bubbleUp(index) {
|
|
274
|
-
const element = this.nodes[index];
|
|
274
|
+
// const element = this.nodes[index];
|
|
275
|
+
// while (index > 0) {
|
|
276
|
+
// const parentIndex = (index - 1) >> 1;
|
|
277
|
+
// const parent = this.nodes[parentIndex];
|
|
278
|
+
// if (this.comparator(element, parent) < 0) {
|
|
279
|
+
// this.nodes[index] = parent;
|
|
280
|
+
// this.nodes[parentIndex] = element;
|
|
281
|
+
// index = parentIndex;
|
|
282
|
+
// } else {
|
|
283
|
+
// break;
|
|
284
|
+
// }
|
|
285
|
+
// }
|
|
286
|
+
const item = this.nodes[index];
|
|
275
287
|
while (index > 0) {
|
|
276
|
-
const
|
|
277
|
-
const
|
|
278
|
-
if (this.comparator(
|
|
279
|
-
this.nodes[index] = parent;
|
|
280
|
-
this.nodes[parentIndex] = element;
|
|
281
|
-
index = parentIndex;
|
|
282
|
-
}
|
|
283
|
-
else {
|
|
288
|
+
const parent = (index - 1) >> 1;
|
|
289
|
+
const parentItem = this.nodes[parent];
|
|
290
|
+
if (this.comparator(parentItem, item) <= 0)
|
|
284
291
|
break;
|
|
285
|
-
|
|
292
|
+
this.nodes[index] = parentItem;
|
|
293
|
+
index = parent;
|
|
286
294
|
}
|
|
295
|
+
this.nodes[index] = item;
|
|
287
296
|
}
|
|
288
297
|
/**
|
|
289
298
|
* Time Complexity: O(log n)
|
|
@@ -297,8 +306,8 @@ class Heap {
|
|
|
297
306
|
* @param index - The index from which to start sinking.
|
|
298
307
|
*/
|
|
299
308
|
sinkDown(index) {
|
|
300
|
-
const leftChildIndex =
|
|
301
|
-
const rightChildIndex =
|
|
309
|
+
const leftChildIndex = index << 1 | 1;
|
|
310
|
+
const rightChildIndex = leftChildIndex + 1;
|
|
302
311
|
const length = this.nodes.length;
|
|
303
312
|
let targetIndex = index;
|
|
304
313
|
if (leftChildIndex < length && this.comparator(this.nodes[leftChildIndex], this.nodes[targetIndex]) < 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heap.js","sourceRoot":"","sources":["../../../../src/data-structures/heap/heap.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"heap.js","sourceRoot":"","sources":["../../../../src/data-structures/heap/heap.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIH,MAAa,IAAI;IACf,YAAY,OAAmD;QAQrD,WAAM,GAAQ,EAAE,CAAC;QAPzB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;QACtC,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;YAC5B,IAAI,CAAC,GAAG,EAAE,CAAC;SACZ;IACH,CAAC;IAID,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAID,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,IAAI,IAAI;;QACN,OAAO,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,mCAAI,SAAS,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAI,OAAkD;QAClE,OAAO,IAAI,IAAI,CAAI,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACH,GAAG,CAAC,OAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACH,IAAI,CAAC,OAAU;QACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,OAAO,SAAS,CAAC;SAClB;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAO,CAAC;SAC9B;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAO,CAAC;QACtC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACH,GAAG;QACD,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACH,MAAM,CAAC,KAAU;QACf,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,GAAG,EAAE,CAAC;IACb,CAAC;IAED;;;OAGG;IAEH;;;;;;;OAOG;IACH,GAAG,CAAC,OAAU;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED;;;OAGG;IAEH;;;;;;;OAOG;IACH,GAAG,CAAC,KAAsB;QACxB,MAAM,MAAM,GAAQ,EAAE,CAAC;QAEvB,2FAA2F;QAC3F,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,EAAE;YAClC,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE;gBACrB,IAAI,KAAK,KAAK,IAAI,EAAE;oBAClB,SAAS,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC/B,SAAS,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;iBAC1B;qBAAM,IAAI,KAAK,KAAK,KAAK,EAAE;oBAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC/B,SAAS,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;oBACzB,SAAS,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;iBAC1B;qBAAM,IAAI,KAAK,KAAK,MAAM,EAAE;oBAC3B,SAAS,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;oBACzB,SAAS,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;iBAChC;aACF;QACH,CAAC,CAAC;QAEF,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,uCAAuC;QAErD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACH,OAAO;QACL,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACH,KAAK;QACH,MAAM,UAAU,GAAG,IAAI,IAAI,CAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAChE,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACH,IAAI;QACF,MAAM,WAAW,GAAQ,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE;YACxB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAC1B,IAAI,GAAG;gBAAE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAChC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACO,QAAQ,CAAC,KAAa;QAC9B,qCAAqC;QACrC,sBAAsB;QACtB,0CAA0C;QAC1C,4CAA4C;QAC5C,gDAAgD;QAChD,kCAAkC;QAClC,yCAAyC;QACzC,2BAA2B;QAC3B,aAAa;QACb,aAAa;QACb,MAAM;QACN,IAAI;QAEJ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,KAAK,GAAG,CAAC,EAAE;YAChB,MAAM,MAAM,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC;gBAAE,MAAM;YAClD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC;YAC/B,KAAK,GAAG,MAAM,CAAC;SAChB;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACO,QAAQ,CAAC,KAAa;QAC9B,MAAM,cAAc,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,eAAe,GAAG,cAAc,GAAG,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACjC,IAAI,WAAW,GAAG,KAAK,CAAC;QAExB,IAAI,cAAc,GAAG,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE;YACvG,WAAW,GAAG,cAAc,CAAC;SAC9B;QACD,IAAI,eAAe,GAAG,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE;YACzG,WAAW,GAAG,eAAe,CAAC;SAC/B;QAED,IAAI,WAAW,KAAK,KAAK,EAAE;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;SAC5B;IACH,CAAC;IAED;;;OAGG;IAEH;;;;;OAKG;IACO,GAAG;QACX,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;CACF;AAjXD,oBAiXC;AAED,MAAa,iBAAiB;IAS5B,YAAY,OAAU,EAAE,MAAM,GAAG,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;CACF;AAdD,8CAcC;AAED,MAAa,aAAa;IACxB,YAAY,UAA0B;QAe5B,UAAK,GAAG,CAAC,CAAC;QAdlB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,WAAW,GAAG,UAAU,IAAI,IAAI,CAAC,iBAAiB,CAAC;QAExD,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE;YACzC,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;SACtF;IACH,CAAC;IAID,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAID,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAID,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAID,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACjB,CAAC;IAED;;;OAGG;IAEH;;;;;;;OAOG;IACH,GAAG,CAAC,OAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED;;;OAGG;IAEH;;;;;;;OAOG;IACH,IAAI,CAAC,OAAU;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAEzB,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACrE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAClB;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IAEH;;;;;;;OAOG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACjD,CAAC;IAED;;;OAGG;IAEH;;;;;;;;OAQG;IACH,iBAAiB,CAAC,IAA2B;QAC3C,MAAM,KAAK,GAA2B,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAExB,IAAI,IAAI,GAAqC,IAAI,CAAC;QAClD,IAAI,IAAI,GAAG,KAAK,CAAC;QAEjB,OAAO,IAAI,EAAE;YACX,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI;gBAAE,MAAM;iBAC5B,IAAI,IAAI,KAAK,IAAI;gBAAE,IAAI,GAAG,IAAI,CAAC;YAEpC,IAAI,IAAI,EAAE;gBACR,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;aACnB;SACF;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CAAC,MAA4B,EAAE,IAA0B;QACrE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACjB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;SACrB;aAAM;YACL,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YAChC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,KAAM,CAAC,IAAI,GAAG,IAAI,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;SAC3B;IACH,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACH,GAAG;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAEtC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAI,CAAC;QACpB,IAAI,CAAC,CAAC,KAAK,EAAE;YACX,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBACzB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;aACzB;SACF;QAED,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAEvB,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE;YACjB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;YACtB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;SACxB;aAAM;YACL,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;YACpB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;QAEb,OAAO,CAAC,CAAC,OAAO,CAAC;IACnB,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACH,KAAK,CAAC,WAA6B;QACjC,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE;YAC1B,OAAO,CAAC,mBAAmB;SAC5B;QAED,wCAAwC;QACxC,IAAI,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;YAC3B,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC;YAEnC,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAM,CAAC;YACtC,MAAM,aAAa,GAAG,SAAS,CAAC,IAAK,CAAC;YAEtC,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC;YAC3B,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC;YAE1B,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC;YACnC,aAAa,CAAC,KAAK,GAAG,aAAa,CAAC;SACrC;QAED,0BAA0B;QAC1B,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;YACpG,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC;SAC7B;QAED,kBAAkB;QAClB,IAAI,CAAC,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC;QAE/B,iCAAiC;QACjC,WAAW,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED;;;;;OAKG;IACO,iBAAiB,CAAC,CAAI,EAAE,CAAI;QACpC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QACpB,OAAO,CAAC,CAAC;IACX,CAAC;IAED;;;;OAIG;IACO,UAAU,CAAC,OAAU;QAC7B,OAAO,IAAI,iBAAiB,CAAI,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACO,aAAa,CAAC,IAA0B;QAChD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACnB;aAAM;YACL,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,KAAM,CAAC,IAAI,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACxB;IACH,CAAC;IAED;;;OAGG;IAEH;;;;;;;OAOG;IACO,cAAc,CAAC,IAA0B;QACjD,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;YAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAChD,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5C,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAC9C,CAAC;IAED;;;OAGG;IAEH;;;;;;;;OAQG;IACO,IAAI,CAAC,CAAuB,EAAE,CAAuB;QAC7D,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QACX,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QACZ,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1B,CAAC,CAAC,MAAM,EAAE,CAAC;QACX,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACf,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACO,WAAW;QACnB,MAAM,CAAC,GAAyC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAmC,EACrC,CAAmC,EACnC,CAAS,EACT,CAAmC,CAAC;QAEtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,CAAC,GAAG,IAAI,CAAC;YACT,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;YAEb,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;gBACX,CAAC,GAAG,CAAC,CAAC,CAAC,CAAyB,CAAC;gBAEjC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBAC7C,CAAC,GAAG,CAAC,CAAC;oBACN,CAAC,GAAG,CAAC,CAAC;oBACN,CAAC,GAAG,CAAC,CAAC;iBACP;gBAED,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChB,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;gBACjB,CAAC,EAAE,CAAC;aACL;YAED,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SACV;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YAClC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,OAAO,EAAE,IAAI,CAAC,GAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAClE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;aACnB;SACF;IACH,CAAC;CACF;AArYD,sCAqYC"}
|
|
@@ -268,19 +268,28 @@ export class Heap {
|
|
|
268
268
|
* @param index - The index of the newly added element.
|
|
269
269
|
*/
|
|
270
270
|
bubbleUp(index) {
|
|
271
|
-
const element = this.nodes[index];
|
|
271
|
+
// const element = this.nodes[index];
|
|
272
|
+
// while (index > 0) {
|
|
273
|
+
// const parentIndex = (index - 1) >> 1;
|
|
274
|
+
// const parent = this.nodes[parentIndex];
|
|
275
|
+
// if (this.comparator(element, parent) < 0) {
|
|
276
|
+
// this.nodes[index] = parent;
|
|
277
|
+
// this.nodes[parentIndex] = element;
|
|
278
|
+
// index = parentIndex;
|
|
279
|
+
// } else {
|
|
280
|
+
// break;
|
|
281
|
+
// }
|
|
282
|
+
// }
|
|
283
|
+
const item = this.nodes[index];
|
|
272
284
|
while (index > 0) {
|
|
273
|
-
const
|
|
274
|
-
const
|
|
275
|
-
if (this.comparator(
|
|
276
|
-
this.nodes[index] = parent;
|
|
277
|
-
this.nodes[parentIndex] = element;
|
|
278
|
-
index = parentIndex;
|
|
279
|
-
}
|
|
280
|
-
else {
|
|
285
|
+
const parent = (index - 1) >> 1;
|
|
286
|
+
const parentItem = this.nodes[parent];
|
|
287
|
+
if (this.comparator(parentItem, item) <= 0)
|
|
281
288
|
break;
|
|
282
|
-
|
|
289
|
+
this.nodes[index] = parentItem;
|
|
290
|
+
index = parent;
|
|
283
291
|
}
|
|
292
|
+
this.nodes[index] = item;
|
|
284
293
|
}
|
|
285
294
|
/**
|
|
286
295
|
* Time Complexity: O(log n)
|
|
@@ -294,8 +303,8 @@ export class Heap {
|
|
|
294
303
|
* @param index - The index from which to start sinking.
|
|
295
304
|
*/
|
|
296
305
|
sinkDown(index) {
|
|
297
|
-
const leftChildIndex =
|
|
298
|
-
const rightChildIndex =
|
|
306
|
+
const leftChildIndex = index << 1 | 1;
|
|
307
|
+
const rightChildIndex = leftChildIndex + 1;
|
|
299
308
|
const length = this.nodes.length;
|
|
300
309
|
let targetIndex = index;
|
|
301
310
|
if (leftChildIndex < length && this.comparator(this.nodes[leftChildIndex], this.nodes[targetIndex]) < 0) {
|