Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

기수 정렬 - JavaScript

<시간/>

기수 정렬

기수 정렬은 동일한 중요한 위치와 값을 공유하는 개별 숫자로 키를 그룹화하여 정수 키로 데이터를 정렬하는 정렬 알고리즘입니다.

리터럴 배열을 유일한 인수로 취하는 JavaScript 함수를 작성해야 합니다. 함수는 기수 정렬 알고리즘을 사용하여 오름차순 또는 내림차순으로 배열을 정렬해야 합니다.

예시

다음은 코드입니다 -

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
]