再帰的なバブルソートのためのC++プログラム?
このセクションでは、有名なバブルソート手法の別のアプローチを見ていきます。バブルソートを繰り返し使用しました。しかし、ここでは、バブルソートの再帰的アプローチを見ていきます。再帰的なバブルソートアルゴリズムは次のようになります。
アルゴリズム
bubbleRec(arr、n)
begin if n = 1, return for i in range 1 to n-2, do if arr[i] > arr[i+1], then exchange arr[i] and arr[i+1] end if done bubbleRec(arr, n-1) end
例
#include<iostream>
using namespace std;
void recBubble(int arr[], int n){
if (n == 1)
return;
for (int i=0; i<n-1; i++) //for each pass p
if (arr[i] > arr[i+1]) //if the current element is greater than next one
swap(arr[i], arr[i+1]); //swap elements
recBubble(arr, n-1);
}
main() {
int data[] = {54, 74, 98, 154, 98, 32, 20, 13, 35, 40};
int n = sizeof(data)/sizeof(data[0]);
cout << "Sorted Sequence ";
recBubble(data, n);
for(int i = 0; i <n;i++){
cout << data[i] << " ";
}
} 出力
Sorted Sequence 13 20 32 35 40 54 74 98 98 154
-
バブルソートを実装するC++プログラム
バブルソートは、比較ベースのソートアルゴリズムです。このアルゴリズムでは、隣接する要素が比較および交換されて、正しいシーケンスが作成されます。このアルゴリズムは他のアルゴリズムよりも単純ですが、いくつかの欠点もあります。このアルゴリズムは、多数のデータセットには適していません。並べ替えタスクの解決には時間がかかります。 バブルソート手法の複雑さ 時間計算量:最良の場合はO(n)、O(n 2 )平均および最悪の場合 スペースの複雑さ:O(1) Input − A list of unsorted data: 56 98 78 12 30 51 Output &mi
-
再帰的なバブルソートのためのJavaプログラム
以下は、再帰バブルソート用のJavaプログラムです- 例 import java.util.Arrays; public class Demo{ static void bubble_sort(int my_arr[], int len_arr){ if (len_arr == 1) return; for (int i=0; i<len_arr-1; i++) if (my_arr[i] >