mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2025-07-05 08:16:50 +08:00
editing file names
This commit is contained in:
36
Sorts/ShellSort.js
Normal file
36
Sorts/ShellSort.js
Normal file
@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Shell Sort sorts an array based on insertion sort algorithm
|
||||
* more information: https://en.wikipedia.org/wiki/Shellsort
|
||||
*
|
||||
*/
|
||||
function shellSort (items) {
|
||||
var interval = 1
|
||||
|
||||
while (interval < items.length / 3) {
|
||||
interval = interval * 3 + 1
|
||||
}
|
||||
|
||||
while (interval > 0) {
|
||||
for (var outer = interval; outer < items.length; outer++) {
|
||||
var value = items[outer]
|
||||
var inner = outer
|
||||
|
||||
while (inner > interval - 1 && items[inner - interval] >= value) {
|
||||
items[inner] = items[inner - interval]
|
||||
inner = inner - interval
|
||||
}
|
||||
items[inner] = value
|
||||
}
|
||||
interval = (interval - 1) / 3
|
||||
}
|
||||
return items
|
||||
}
|
||||
|
||||
// Implementation of shellSort
|
||||
|
||||
var ar = [5, 6, 7, 8, 1, 2, 12, 14]
|
||||
// Array before Sort
|
||||
console.log(ar)
|
||||
shellSort(ar)
|
||||
// Array after sort
|
||||
console.log(ar)
|
Reference in New Issue
Block a user