Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

Radix sort - JavaScript


Radix เรียง

Radix sort คืออัลกอริธึมการจัดเรียงที่จัดเรียงข้อมูลด้วยคีย์จำนวนเต็มโดยจัดกลุ่มคีย์ตามตัวเลขแต่ละตัวซึ่งมีตำแหน่งและค่าที่มีนัยสำคัญเหมือนกัน

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้อาร์เรย์ของตัวอักษรเป็นอาร์กิวเมนต์เดียว ฟังก์ชันควรจัดเรียงอาร์เรย์ในลำดับที่เพิ่มขึ้นหรือลดลงโดยใช้อัลกอริธึมการจัดเรียง Radix

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

const arr = [45, 2, 56, 2, 5, 6, 34, 1, 56, 89, 33];
const radixSort = (arr = []) => {
   const base = 10;
   let divider = 1;
   let maxVal = Number.NEGATIVE_INFINITY;
   while (divider === 1 || divider <= maxVal) {
      const buckets = [...Array(10)].map(() => []);
      for (let val of arr) {
         buckets[Math.floor((val / divider) % base)].push(val);
         maxVal = val > maxVal ? val : maxVal;
      }
      arr = [].concat(...buckets);
      divider *= base;
   };
   return arr;
};
console.log(radixSort(arr));

ผลลัพธ์

ต่อไปนี้เป็นผลลัพธ์บนคอนโซล -

[
   1, 2, 2, 5, 6,
   33, 34, 45, 56, 56,
   89
]