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

Pythonで色を並べ替える


n個のオブジェクトを含む配列があるとします。これらは赤、白、または青の色で、同じ色のオブジェクトが隣接するように所定の位置に並べ替えます。つまり、色は赤、白、青の順になります。ここでは、0、1、2などの数字を使用して、それぞれ赤、白、青の色を表します。したがって、配列が[2,0,2,1,1,0]のような場合、出力は[0,0,1,1,2,2]

になります。

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

  • 低:=0、中:=0、高:=配列の長さ– 1
  • 中<=高
    • arr [mid] =0の場合、arr[mid]とarr[low]を入れ替えて、lowとmidを1増やします
    • それ以外の場合、arr [mid] =2の場合、arr[high]とarr[mid]を入れ替えると、highが1減少します
    • それ以外の場合は、途中で1増加します
例(Python)

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

class Solution(object):
   def sortColors(self, nums):
      low = 0
      mid = 0
      high = len(nums)-1
      while mid<=high:
         if nums[mid] == 0:
            nums[low],nums[mid] = nums[mid],nums[low]
            low+=1
            mid += 1
         elif nums[mid] == 2:
            nums[high], nums[mid] = nums[mid], nums[high]
            high-=1
         else:
            mid += 1
      return nums
ob1 = Solution()
print(ob1.sortColors([2,0,2,1,1,0]))

入力

[2,0,2,1,1,0]

出力

[0,0,1,1,2,2]

  1. ストゥージソート用のPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −配列が与えられたので、ストゥージソートを使用してソートする必要があります。 アルゴリズム 1. Check if value at index 0 is greater than value at last index,then swap them. 2. sort the initial 2/3rd of the array. 3. sort the last 2/3rd of the array. 4. sort the initial 2/3rd again to confirm. 次に、以下の実装の

  2. Pythonプログラムでの選択ソート

    この記事では、Python3.xでの選択ソートとその実装について学習します。またはそれ以前。 選択ソート アルゴリズムでは、配列は、ソートされていない部分から最小要素を再帰的に見つけて、それを先頭に挿入することによってソートされます。特定の配列での選択ソートの実行中に、2つのサブ配列が形成されます。 すでに並べ替えられているサブ配列。 ソートされていないサブアレイ。 選択ソートを繰り返すたびに、ソートされていないサブアレイの最小要素がポップされ、ソートされたサブアレイに挿入されます。 アルゴリズムの視覚的表現を見てみましょう- それでは、アルゴリズムの実装を見てみましょう-