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

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


要素が複数回出現する可能性のあるいくつかの要素を含む配列があるとします。要素が頻度の増加に従ってソートされるように配列をソートする必要があります。したがって、どの要素が表示される回数が少ないかが最初に表示されます。

したがって、入力がnums =[1,5,3,1,3,1,2,5]のような場合、出力は[2、5、5、3、3、1、1、1]<になります。 / P>

これを解決するには、次の手順に従います-

  • mp:=新しいマップ

  • numsからの個別の要素iごとに、実行します

    • x:=numsで存在するiの数

    • xがmpに存在する場合、

      • mp [x]

        の最後にiを挿入します
    • それ以外の場合、mp [x]:=1つの要素のみを含むリストi

  • ans:=新しいリスト

  • キーに基づいてmpを並べ替える各iについて、実行します

    • リストmp[i]を逆の順序で並べ替えるjごとに、次のようにします

      • j、iをansに何度も挿入します

  • ansを返す

例(Python)

理解を深めるために、次の実装を見てみましょう-

def solve(nums):
   mp = {}
   for i in set(nums):
      x=nums.count(i)
      try:
         mp[x].append(i)
      except:
         mp[x]=[i]
   ans=[]

   for i in sorted(mp):
      for j in sorted(mp[i], reverse=True):
         ans.extend([j]*i)
   return ans

nums = [1,5,3,1,3,1,2,5]
print(solve(nums))

入力

[1,5,3,1,3,1,2,5]

出力

[2, 5, 5, 3, 3, 1, 1, 1]

  1. Pythonプログラムでの挿入ソート

    この記事では、Python3.xでの挿入ソートの実装について学習します。またはそれ以前。 アルゴリズム ソートされた配列を各反復で拡張することにより、入力要素を反復します。 現在の要素を、並べ替えられた配列で使用可能な最大値と比較します。 現在の要素の方が大きい場合は、その要素をそのままにして次の要素に移動します。それ以外の場合は、並べ替えられた配列内で正しい位置を見つけて、配列内のその位置に移動します。 これは、並べ替えられた配列内の現在の要素よりも大きいすべての要素を右にシフトすることで実現されます。 それでは、アルゴリズムの視覚的表現を見てみましょう

  2. 挿入ソート用のPythonプログラム

    この記事では、Python3.xでの挿入ソートの実装について学習します。またはそれ以前。 アルゴリズム 1. Iterate over the input elements by growing the sorted array at each iteration. 2. Compare the current element with the largest value available in the sorted array. 3. If the current element is greater, then it leaves the element in its place &n