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

配列ローテーション用のJavaプログラム


以下は、配列ローテーション用のJavaプログラムです-

public class Demo{
   void rotate_left(int my_arr[], int d, int len){
      d = d % len;
      int i, j, k, temp;
      int divisor = greatest_Common_divisor(d, len);
      for (i = 0; i < divisor; i++){
         temp = my_arr[i];
         j = i;
         while (true){
            k = j + d;
            if (k >= len)
            k = k - len;
            if (k == i)
            break;
            my_arr[j] = my_arr[k];
            j = k;
         }
         my_arr[j] = temp;
      }
   }
   void display_arr(int my_arr[], int size){
      int i;
      for (i = 0; i < size; i++)
      System.out.print(my_arr[i] + " ");
   }
   int greatest_Common_divisor(int a, int b){
      if (b == 0)
      return a;
      else
      return greatest_Common_divisor(b, a % b);
   }
   public static void main(String[] args){
      Demo my_inst = new Demo();
      int my_arr[] = { 5, 7, 89, 91, 34, 21, 11, 0 };
      System.out.println("Rotating the array to the left ");
      my_inst.rotate_left(my_arr, 2, 8);
      System.out.println("Displaying the array from a specific index ");
      my_inst.display_arr(my_arr, 8);
   }
}

出力

Rotating the array to the left
Displaying the array from a specific index
89 91 34 21 11 0 5 7

Demoという名前のクラスには、「rotate_left」という名前の静的関数が含まれています。ここで、配列はパラメータの1つとして関数に渡されます。「d」は配列を回転させる量、「len」は配列のサイズです。 「greatest_common_divisor」関数は、「d」と「len」の値を渡すことによって呼び出されます。 「for」ループは、「greatest_common_divisor」への関数呼び出しの結果に対して繰り返されます。

配列要素を表示するために使用される「display_arr」という名前の関数が定義されています。別の関数'greatest_Common_divisor'は、2つの数値の中から最大公約数を見つけるために定義されており、再帰関数です。 main関数では、クラスのインスタンスが作成されます。配列も定義され、このオブジェクトで関数が呼び出されます。関連するデータは、「display_arr」関数を使用して表示されます。


  1. 配列要素の乗算のためのC++プログラム

    整数要素の配列で与えられ、タスクは配列の要素を乗算して表示することです。 例 Input-: arr[]={1,2,3,4,5,6,7} Output-: 1 x 2 x 3 x 4 x 5 x 6 x 7 = 5040 Input-: arr[]={3, 4,6, 2, 7, 8, 4} Output-: 3 x 4 x 6 x 2 x 7 x 8 x 4 = 32256 以下のプログラムで使用されるアプローチは次のとおりです − 一時変数を初期化して、最終結果を1で格納します ループを0からnまで開始します。nは配列のサイズです 最終結果を得るには、tempの値にarr[i]を掛け続

  2. 配列ローテーション用のPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −テキストとパターンが与えられた場合、パターンのすべての出現とその順列(またはアナグラム)をテキストで印刷する必要があります。 次に、以下の実装のソリューションを見てみましょう- 例 # maximum value MAX = 300 # compare def compare(arr1, arr2):    for i in range(MAX):       if arr1[i] != arr2[i]:       &nbs