Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

162
Views
Por qué mi implementación de Radix Sort no funciona - JavaScript

Aquí está mi código:

 // get digit at a specific location. // getDigit(12345,0) -> output: 5 function getDigit(num1, i) { num1 = String(num1); num1 = num1.split('').reverse().join(''); if (i>= num1.length) { return 0 } else { return parseInt(num1[i]) } } function mostDigits(array1) { if (array1.length == 0) { return 0 } array1 = array1.map(x => String(x).length) return Math.max(...array1) } function radixSort(nums) { let array1 = [[], [], [], [], [], [], [], [], [], []] let maxnum = mostDigits(nums); for (let i = 0; i <= maxnum; i++) { for (let k = 0; k < nums.length; k++) { if (array1[getDigit(nums[k], i)]) { array1[getDigit(nums[k], i)].push(nums[k]); // here I shift the corresponding number out of the array 'nums', which I add back later nums.shift() } } for (let q = 0; q <= 9; q++) { for (let m = 0; m < array1[q].length; m++) { let temp = array1[q].shift; nums.unshift(temp); } } } } return nums } console.log(radixSort([8, 6, 1, 12]))

La salida, en la que los valores no se ordenaron en orden ascendente:

[ [Función: cambio], [Función: cambio], 1, 12 ]

Las funciones getDigit() y mostDigits() se ejecutan normalmente ya que las revisé dos veces. El problema está en algún lugar dentro de la función radixSort() . Escribí mi código basado en la Ilustración en Visualgo.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

intentalo :

 // get digit at a specific location. // getDigit(12345,0) -> output: 5 function getDigit(num1, i) { num1 = String(num1); num1 = num1.split('').reverse().join(''); if (i>= num1.length) { return 0 } else { return parseInt(num1[i]) } } function mostDigits(array1) { if (array1.length == 0) { return 0 } array1 = array1.map(x => String(x).length) return Math.max(...array1) } function radixSort(nums) { let maxnum = mostDigits(nums); for (let i = 0; i <= maxnum; i++) { let array1 = Array.from({ length: 10 }, () => []); for (let k = 0; k < nums.length; k++) { if (array1[getDigit(nums[k], i)]) { array1[getDigit(nums[k], i)].push(nums[k]); } } nums = array1.flat(); } return nums } console.log(radixSort([8, 6, 1, 12, 44, 4]))

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!