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

配列がPythonでソートおよびローテーションされているかどうかを確認するプログラム


numsという配列があるとすると、配列が元々降順ではない順序で並べ替えられてから、いくつかの位置(ゼロの場合もある)を回転したかどうかを確認する必要があります。重複がアレイに存在する場合もあります。

したがって、入力がnums =[12,15,2,5,6,9]のようである場合、出力は2桁右に回転されるため、Trueになります

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

  • j:=0

  • j

    • j:=j + 1

  • res:=(インデックスj + 1からnumsの終わりまでのnumsのサブ配列)連結(インデックス0からnumsのjまでのnumsのサブ配列)

  • 0からres-1のサイズまでの範囲のiの場合、実行します

    • res [i]> res [i + 1]の場合、

      • Falseを返す

  • Trueを返す

例(Python)

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

def solve(nums):
   j = 0
   while (j < len(nums) - 1 and nums[j] <= nums[j + 1]):
      j += 1
   res = nums[j + 1 : len(nums)] + nums[0:j + 1]
   for i in range(len(res) - 1):
      if res[i] > res[i + 1]:
         return False
   return True

nums = [12,15,2,5,6,9]
print(solve(nums))

入力

[12,15,2,5,6,9]

出力

True

  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