Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptでのカウントソートの実装


数値の配列を受け取り、カウントソートアルゴリズムを使用してソートするJavaScript関数を作成する必要があります。

最大値がわかっている場合は、カウントソートアルゴリズムを使用して、線形時間と空間で数値の配列をソートできます。最大値を使用して、そのサイズの配列を作成し、各インデックス値の出現をカウントします。

次に、カウントがゼロ以外のすべてのインデックスを結果配列に抽出します。

最初に1つのループを使用して配列の最大要素を見つけ、それがわかったら、countingsortを使用して配列を並べ替えます。

const arr = [4, 3, 1, 2, 3];
const findMaximum = arr => arr.reduce((acc, val) => val > acc ? val: acc, Number.MIN_VALUE)
const countingSort = (arr = []) => {
   const max = findMaximum(arr);
   const counts = new Array(max + 1);
   counts.fill(0);
   arr.forEach(value => counts[value]++);
   const res = [];
   let resultIndex = 0;
   counts.forEach((count, index) => {
      for (let i = 0; i < count; i++) {
         res[resultIndex] = index;
         resultIndex++;
      };
   });
   return res;
};
console.log(countingSort(arr));

出力

そして、コンソールの出力は-

になります
[ 1, 2, 3, 3, 4 ]

  1. JavaScriptのArray.prototype.sort()。

    JavaScript Array.prototype.sort()メソッドは、配列の並べ替えに使用されます。並べ替えの順序は、アルファベット、数字、昇順、降順のいずれかです。 以下は、Array.prototype.sort()メソッドのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-

  2. JavaScriptでの線形検索の実装

    以下は、JavaScriptで線形検索を実装するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>