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

JavaScriptの要素の頻度の増加に従って配列を並べ替える


最初で唯一の引数としてリテラルの配列を受け取るJavaScript関数を作成する必要があります。

配列には多くの繰り返し値が含まれている可能性があります。この関数は、一意の値または頻度が最も低い値が、頻度が最も高い値の前に配置されるように配列を並べ替える必要があります。

例-

入力配列が-

の場合
const arr = [4, 7, 3, 5, 5, 4, 7, 9, 2, 1, 5, 7, 5, 5, 9];

その場合、出力配列は-

になります。
const output = [
   3, 2, 1, 9, 9, 4,
   4, 7, 7, 7, 5, 5,
   5, 5, 5
];

以下はコードです-

const arr = [4, 7, 3, 5, 5, 4, 7, 9, 2, 1, 5, 7, 5, 5, 9];
const sortByNumbers = (arr = []) => {
   const map = {};
   const res = [];
   for (let i = 0; i < arr.length; i++) {
      map[arr[i]] = map[arr[i]] || [0];
      map[arr[i]][0]++;
      map[arr[i]][1] = arr[i];
   }
   const sorted = Object.values(map).sort((a, b) => {
      if (a[0] === b[0]) {
         return b[1] - a[1];
      }
      return a[0] - b[0]
   });
   for (let i = 0; i < sorted.length; i++) {
      const [freq, num] = sorted[i]
      for (let j = 0; j < freq; j++) {
         res.push(num);
      }
   }
   return res;
};
console.log(sortByNumbers(arr));

出力

以下はコンソール出力です-

[
   3, 2, 1, 9, 9, 4,
   4, 7, 7, 7, 5, 5,
   5, 5, 5
]

  1. JavaScriptの要素の頻度の増加に基づいて配列を並べ替える

    問題 最初で唯一の引数として、数値の配列arrを受け取るJavaScript関数を作成する必要があります。 配列arrには、いくつかの重複が含まれている可能性があります。この関数は、出現回数が最も少ない要素が最初に配置され、次に頻度が高くなる要素が配置されるように配列を並べ替えることを想定しています。 2つの要素が配列に同じ回数出現する場合は、昇順で配置する必要があります。 たとえば、関数への入力が 入力 const arr = [5, 4, 5, 4, 2, 1, 12]; 出力 const output = [1, 2, 12, 4, 4, 5, 5]; 出力の説明

  2. Pythonで要素の頻度を増やして配列を並べ替えるプログラム

    要素が複数回出現する可能性のあるいくつかの要素を含む配列があるとします。要素が頻度の増加に従ってソートされるように配列をソートする必要があります。したがって、どの要素が表示される回数が少ないかが最初に表示されます。 したがって、入力がnums =[1,5,3,1,3,1,2,5]のような場合、出力は[2、5、5、3、3、1、1、1] これを解決するには、次の手順に従います- mp:=新しいマップ numsからの個別の要素iごとに、実行します x:=numsで存在するiの数 xがmpに存在する場合、 mp [x]の最後にiを挿入します それ以外の場合、