Counting Sort 1のアルゴリズムは比較的シンプルであり、以下の手順で動作します。
- 入力配列の要素を走査し、各要素の出現回数をカウントします。
- カウンター配列を作成し、各要素の出現回数を格納します。
- カウンター配列を使用して、ソート済みの配列を作成します。
それでは、JavaScriptでCounting Sort 1を実装する例を見てみましょう。
function countingSort(arr) {
// カウンター配列を初期化します
const counter = new Array(100).fill(0);
// 入力配列の要素をカウントします
for (let i = 0; i < arr.length; i++) {
counter[arr[i]]++;
}
// カウンター配列を使用してソート済みの配列を作成します
const sortedArr = [];
for (let i = 0; i < counter.length; i++) {
for (let j = 0; j < counter[i]; j++) {
sortedArr.push(i);
}
}
return sortedArr;
}
// テスト用の入力配列
const arr = [1, 4, 1, 2, 7, 5, 2];
const sortedArr = countingSort(arr);
console.log(sortedArr);
上記のコードでは、カウンター配列を用いて入力配列の要素をカウントし、その後、カウンター配列を使用してソート済みの配列を作成しています。最終的には、sortedArr
にはソートされた配列が格納されます。
このようにして、JavaScriptを使用してHackerRankのCounting Sort 1を実装することができます。このアルゴリズムは、要素の範囲が制限されている場合や整数型の要素をソートする場合に特に有用です。