Platform
Resources
Pricing
Sign in
Contact us
Claudio Esperança
Computer Graphics & Visualization @ufrj.br
Workspace
Fork
Published
Data Structures
By
Claudio Esperança
Edited
Nov 13, 2020
Data Structures
Point k-d trees with queries
Hash table with open addressing and double hashing
Hash table with separate chaining
Point k-d trees
Omohundro balltree construction algorithms
Counting and radix sort
MergeSort and QuickSort
SkipList
Splay Trees
Treaps
Binary Heaps
2-3-Trees
AA Trees
AVL Trees
Binary Search Trees
Trees
Linked lists
Arrays for busy people
Asymptotic Complexity
Insert cell
Insert cell
// Returns A sorted in ascending order of keys, where the key value of A[i] is given by f(A[i]).
// Assumes f() returns integer values from 0 to some (small) k.
function
countSort
(
A
,
k
,
f
=
x
=>
x
)
{
let
R
=
[
]
,
B
=
[
]
;
let
n
=
A
.
length
;
for
(
let
i
=
0
;
i
<
k
;
i
++
)
R
[
i
]
=
0
;
for
(
let
x
of
A
)
R
[
f
(
x
)
]
++
;
for
(
let
i
=
1
;
i
<
k
;
i
++
)
R
[
i
]
+=
R
[
i
-
1
]
;
for
(
let
i
=
n
-
1
;
i
>=
0
;
i
--
)
{
let
j
=
--
R
[
f
(
A
[
i
]
)
]
;
B
[
j
]
=
A
[
i
]
}
return
B
}
Insert cell
countSort
(
[
5
,
4
,
3
,
2
,
1
,
0
,
0
]
,
6
)
Insert cell
countSort
(
[
1
,
15
,
12
,
13
,
19
,
23
,
40
,
14
,
12
]
,
10
,
x
=>
x
%
10
)
Insert cell
countSort
(
countSort
(
[
1
,
15
,
12
,
13
,
19
,
23
,
40
,
14
,
12
]
,
10
,
x
=>
x
%
10
)
,
10
,
x
=>
~
~
(
x
/
10
)
)
Insert cell
// Returns array A sorted in ascending order. It is assumed that A has positive integer
// numbers, with up to d bytes
function
radixSort
(
A
,
d
)
{
for
(
let
i
=
0
;
i
<
d
;
i
++
)
{
let
f
=
x
=>
x
>>
(
8
*
i
)
&
0xff
;
A
=
countSort
(
A
,
256
,
f
)
}
return
A
}
Insert cell
radixSort
(
[
1029
,
3141
,
13123
,
5248
,
843
,
22
,
19813
,
32677
,
9
]
,
2
)
Insert cell
Purpose-built for displays of data
Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Try it for free
Learn more
Fork
View
Export
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
countSort
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
radixSort
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML