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

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


カクテルソートは、要素が左から右に繰り返され、最大の要素が最初に正しい位置に移動されるバブルソートとは対照的に機能します。シェーカーソートでは、要素が交互に両方向(左と右)に繰り返されます。

以下は、カクテルソートのプログラムです-

public class Demo{
   static int temp;
   static void Cocktail(int a[], int n){
      boolean swap = true;
      int begin = 0,i;
      int end = n - 1;
      while (swap) {
         swap = false;
         for (i = begin; i < end; ++i){
            if (a[i] > a[i + 1]){
               temp = a[i];
               a[i]=a[i+1];
               a[i+1]=temp;
               swap = true;
            }
         }
         if (!swap)
         break;
         swap = false;
         for (i = end - 1; i >= begin; --i){
            if (a[i] > a[i + 1]){
               temp = a[i];
               a[i]=a[i+1];
               a[i+1]=temp;
               swap = true;
            }
         }
         ++begin;
      }
   }
   public static void main(String[] args) {
      int my_arr[] = {34, 78, 90, 32, 67, 12, 1, 0, 95};
      Cocktail(my_arr, my_arr.length);
      System.out.println("The sorted array is ");
      for (int i = 0; i < my_arr.length; i++)
      System.out.print(my_arr[i]+" ");
      System.out.println();
   }
}

出力

The sorted array is
0 1 12 32 34 67 78 90 95

最初のステップでは、ループが左から右に実行され(バブルソートと同様)、その間に隣接するアイテムが比較されます。左利きの値が右利きの値より大きい場合、値は交換されます。最初の反復が終了すると、最大の要素が配列の最後に表示されます。次のステップでは、最後にソートされたアイテムを残すことにより、ループが右から左に実行されます。ここでも、隣接する要素が比較され、大きい方の要素が配列の最後に追加されます。


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

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −配列が与えられたので、マージソートの概念を使用して配列をソートする必要があります ここでは、最大の要素を最後に配置します。これは、配列がソートされるまで繰り返されます。 次に、以下の実装のソリューションを見てみましょう- 例 #merge function def merge(arr, l, m, r):    n1 = m - l + 1    n2 = r- m    # create arrays    L = [0]

  2. カクテルソート用のPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが与えられたので、与えられたリストに対してビットニックソートを実行し、リストを表示する必要があります シェーカーソート −ここでは、ソートはバブルソートのように行われ、反復は両方向で行われます。 アルゴリズム まず、配列が左から右にトラバースされます。トラバーサル中に、隣接するアイテムが比較され、条件に基づいて値が交換されます。これにより、最大数はアレイの最後になります。 これで、配列は反対方向にトラバースされ、条件に基づいて要素が交換されます。これにより、最小数が最初になります。 次に、以下