UNPKG

ts-sort-shell

Version:
33 lines (32 loc) 1.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.shellSortAsync = exports.shellSort = exports.shellSortSync = void 0; function shellSortSync(arr) { var len = arr.length, temp, gap = 1; while (gap < len / 3) { //动态定义间隔序列 gap = gap * 3 + 1; } for (gap; gap > 0; gap = Math.floor(gap / 3)) { for (var i = gap; i < len; i++) { temp = arr[i]; var j = i - gap; for (; j >= 0 && arr[j] > temp; j -= gap) { arr[j + gap] = arr[j]; } arr[j + gap] = temp; } } return arr; } exports.shellSortSync = shellSortSync; function shellSort(arr, callback) { var result = shellSortSync(arr); callback && typeof callback == 'function' && callback(result); } exports.shellSort = shellSort; function shellSortAsync(arr) { var result = shellSortSync(arr); return Promise.resolve(result); } exports.shellSortAsync = shellSortAsync;