您的位置 首页 > 腾讯云社区

hash排序(哈希排序)的一个JavaScript实现,支持负数---Jerry Wang

<html> <script> (function main() { var array = [1, 4, -1, 2, 0, -5, -3, 3, -2, -4, 5]; var minusArray = [], positiveArray = []; for( var i = 0; i < array.length; i++) { array[i] >= 0 ? positiveArray.push(array[i]): minusArray.push(-array[i]); } Array.prototype.max = array_max; hashSort(minusArray, positiveArray); })(); function hashSort(min,positive) { var result = revert(hashSortInternal(min)).concat(hashSortInternal(positive)); console.log("after sort: " + result); } function array_max( ){ var i, max = this[0]; for (i = 1; i < this.length; i++) { if (max < this[i]) max = this[i]; } return max; } function hashSortInternal(array) { var bucket = []; var MAX = array.max() + 1; for (var i = 0; i < MAX; i++) bucket[i] = 0; for(var i=0; i< array.length; i++) bucket[array[i]]++; for(var i = 0, idx = 0; i<MAX; i++) { for(var k= bucket[i]; k >0; k--) { array[idx++] = i; } } return array; } function revert(array) { var result = []; for( var i = array.length - 1, idx = 0; i >=0; i--) result[i] = -array[idx++]; array.length = 0; return result; } </script> </html> ---来自腾讯云社区的---Jerry Wang

关于作者: 瞎采新闻

这里可以显示个人介绍!这里可以显示个人介绍!

热门文章

留言与评论(共有 0 条评论)
   
验证码: