mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2025-07-07 02:05:08 +08:00
editing file names
This commit is contained in:
52
Sorts/RadixSort.js
Normal file
52
Sorts/RadixSort.js
Normal file
@ -0,0 +1,52 @@
|
||||
/*
|
||||
* Radix sorts an integer array without comparing the integers.
|
||||
* It groups the integers by their digits which share the same
|
||||
* significant position.
|
||||
* For more information see: https://en.wikipedia.org/wiki/Radix_sort
|
||||
*/
|
||||
function radixSort (items, RADIX) {
|
||||
// default radix is then because we usually count to base 10
|
||||
if (RADIX === undefined || RADIX < 1) {
|
||||
RADIX = 10
|
||||
}
|
||||
|
||||
var maxLength = false
|
||||
var placement = 1
|
||||
|
||||
while (!maxLength) {
|
||||
maxLength = true
|
||||
var buckets = []
|
||||
|
||||
for (var i = 0; i < RADIX; i++) {
|
||||
buckets.push([])
|
||||
}
|
||||
|
||||
for (var j = 0; j < items.length; j++) {
|
||||
var tmp = items[j] / placement
|
||||
buckets[Math.floor(tmp % RADIX)].push(items[j])
|
||||
if (maxLength && tmp > 0) {
|
||||
maxLength = false
|
||||
}
|
||||
}
|
||||
|
||||
var a = 0
|
||||
for (var b = 0; b < RADIX; b++) {
|
||||
var buck = buckets[b]
|
||||
for (var k = 0; k < buck.length; k++) {
|
||||
items[a] = buck[k]
|
||||
a++
|
||||
}
|
||||
}
|
||||
placement *= RADIX
|
||||
}
|
||||
return items
|
||||
}
|
||||
|
||||
// Implementation of radixSort
|
||||
|
||||
var ar = [5, 6, 7, 8, 1, 2, 12, 14]
|
||||
// Array before Sort
|
||||
console.log(ar)
|
||||
radixSort(ar)
|
||||
// Array after sort
|
||||
console.log(ar)
|
Reference in New Issue
Block a user