Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit c6602ec

Browse files
add bucket sort
1 parent a054427 commit c6602ec

File tree

3 files changed

+37
-2
lines changed

3 files changed

+37
-2
lines changed

‎README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,12 @@ Feel free to navigate around.
6363

6464
[Merge sort](https://github.com/estevanmaito/algorithms-in-javascript/tree/master/sorting/merge-sort.js)
6565

66-
[Selection sort](https://github.com/estevanmaito/algorithms-in-javascript/tree/master/sorting/selection-sort.js)
67-
6866
[Quick sort](https://github.com/estevanmaito/algorithms-in-javascript/tree/master/sorting/quick-sort.js)
6967

68+
[Radix sort](https://github.com/estevanmaito/algorithms-in-javascript/tree/master/sorting/radix-sort.js)
69+
70+
[Selection sort](https://github.com/estevanmaito/algorithms-in-javascript/tree/master/sorting/selection-sort.js)
71+
7072
#### Searching
7173

7274
[Binary search](https://github.com/estevanmaito/algorithms-in-javascript/tree/master/searching/binary-search.js)

‎sorting/bucket-sort.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
// https://en.wikipedia.org/wiki/Bucket_sort
2+
3+
let insertionSort = require('./insertion-sort.js')
4+
5+
let bucketSort = (arr) => {
6+
let result = []
7+
8+
for (let i = 0; i < arr.length; i++) {
9+
result[i] = []
10+
}
11+
12+
for (let i = 0; i < arr.length; i++) {
13+
result[Math.floor(arr[i] / 10)].push(arr[i])
14+
}
15+
16+
for (let i = 0; i < arr.length; i++) {
17+
insertionSort(result[i])
18+
}
19+
20+
result = [].concat.apply([], result)
21+
22+
return result
23+
}
24+
25+
const test = require('tape')
26+
27+
test('Bucket sort', assert => {
28+
assert.deepEqual(bucketSort([32,45,37,68,12,94,91,90,97,9,62]),
29+
[9,12,32,37,45,62,68,90,91,94,97])
30+
assert.end()
31+
})

‎sorting/insertion-sort.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ let insertionSort = (array) => {
1717
return array
1818
}
1919

20+
module.exports = insertionSort
21+
2022
const test = require('tape')
2123

2224
test('Insertion sort', assert => {

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /