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

ストゥージソート用のJavaプログラム


以下はストゥージソート用のJavaプログラムです-

import java.io.*;
public class Demo {
   static void stooge_sort(int my_arr[], int l_val, int h_val){
      if (l_val >= h_val)
      return;
      if (my_arr[l_val] > my_arr[h_val]){
         int temp = my_arr[l_val];
         my_arr[l_val] = my_arr[h_val];
         my_arr[h_val] = temp;
      }
      if (h_val-l_val+1 > 2){
         int temp = (h_val-l_val+1) / 3;
         stooge_sort(my_arr, l_val, h_val-temp);
         stooge_sort(my_arr, l_val+temp, h_val);
         stooge_sort(my_arr, l_val, h_val-temp);
      }
   }
   public static void main(String args[]){
      int my_arr[] = {12, 34, 67, 91, 11, 0, 89, 102, 39};
      int n = my_arr.length;
      stooge_sort(my_arr, 0, n-1);
      System.out.println("The array after performing stooge sort is ");
      for (int i=0; i < n; i++)
      System.out.print(my_arr[i] + " ");
   }
}

出力

The array after performing stooge sort is
0 11 12 34 39 67 89 91 102

Demoという名前のクラスには、配列、左、高さ、右の値をパラメーターとして受け取る「stooge_sort」という名前の関数が含まれています。左の値が右の値より大きい場合、何も返されません。配列の左側の値が配列の右側の値より大きい場合、単純なスワッピングが実行されます。

heightとleftの値に基づいて、leftvalueとheightの値を渡すことで「stooge_sort」関数が呼び出されます。 main関数では、配列が定義され、その長さが値に格納されます。これらの値を渡すことで関数が呼び出され、出力がコンソールに表示されます。


  1. カクテルソート用のJavaプログラム

    カクテルソートは、要素が左から右に繰り返され、最大の要素が最初に正しい位置に移動されるバブルソートとは対照的に機能します。シェーカーソートでは、要素が交互に両方向(左と右)に繰り返されます。 以下は、カクテルソートのプログラムです- 例 public class Demo{    static int temp;    static void Cocktail(int a[], int n){       boolean swap = true;       int begin = 0,i;

  2. ストゥージソート用の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. 次に、以下の実装の