Skip to content

Commit a0e06d3

Browse files
committed
Implemented shell sort algorithm
1 parent cedbe13 commit a0e06d3

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

Sorts/shellSort.js

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/*
2+
* Shell Sort sorts an array based on insertion sort algorithm
3+
* more information: https://en.wikipedia.org/wiki/Shellsort
4+
*
5+
*/
6+
function shellSort(items) {
7+
8+
var interval = 1;
9+
10+
while (interval < items.length / 3) {
11+
12+
interval = interval * 3 + 1;
13+
}
14+
15+
while (interval > 0) {
16+
17+
for (var outer = interval; outer < items.length; outer++) {
18+
19+
var value = items[outer];
20+
var inner = outer;
21+
22+
while (inner > interval - 1 && items[inner - interval] >= value) {
23+
items[inner] = items[inner - interval];
24+
inner = inner - interval;
25+
}
26+
items[inner] = value;
27+
}
28+
interval = (interval - 1) / 3;
29+
}
30+
return items;
31+
}
32+
33+
//Implementation of shellSort
34+
35+
var ar = [5, 6, 7, 8, 1, 2, 12, 14];
36+
//Array before Sort
37+
console.log(ar);
38+
shellSort(ar);
39+
//Array after sort
40+
console.log(ar);

0 commit comments

Comments
 (0)