カクテルソート用の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
最初のステップでは、ループが左から右に実行され(バブルソートと同様)、その間に隣接するアイテムが比較されます。左利きの値が右利きの値より大きい場合、値は交換されます。最初の反復が終了すると、最大の要素が配列の最後に表示されます。次のステップでは、最後にソートされたアイテムを残すことにより、ループが右から左に実行されます。ここでも、隣接する要素が比較され、大きい方の要素が配列の最後に追加されます。
-
マージソート用のPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −配列が与えられたので、マージソートの概念を使用して配列をソートする必要があります ここでは、最大の要素を最後に配置します。これは、配列がソートされるまで繰り返されます。 次に、以下の実装のソリューションを見てみましょう- 例 #merge function def merge(arr, l, m, r): n1 = m - l + 1 n2 = r- m # create arrays L = [0]
-
カクテルソート用のPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが与えられたので、与えられたリストに対してビットニックソートを実行し、リストを表示する必要があります シェーカーソート −ここでは、ソートはバブルソートのように行われ、反復は両方向で行われます。 アルゴリズム まず、配列が左から右にトラバースされます。トラバーサル中に、隣接するアイテムが比較され、条件に基づいて値が交換されます。これにより、最大数はアレイの最後になります。 これで、配列は反対方向にトラバースされ、条件に基づいて要素が交換されます。これにより、最小数が最初になります。 次に、以下