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

ストゥージソートを実行するC++プログラム


ストゥージソートは、指定されたデータをソートするために使用されます。これは再帰的なソートアルゴリズムです。ストゥージソートは、配列を2つの重なり合う部分(それぞれ2/3)に分割し、I、II、およびIの部分を並べ替えることにより、3つのステップで配列を並べ替えます。このアルゴリズムの最悪の場合の時間計算量はO(n ^ 2.7095)です。

>

アルゴリズム

Begin
   Take input of data.
   Call StoogeSort() function with ‘a’ the array of data and ‘n’ the number of values, in the argument list.
   Implement Sorting using recursive approach.
   Divide the array into first 2/3 element as part I and last 2/3 as part II.
   Then send the first, second and again first part into StoogeSort().
   If the length is not further breakable then swap element at the start and end if a[end] < a[start].
   Return to main and display the result.
End.

サンプルコード

#include<iostream>
using namespace std;
void StoogeSort(int a[],int start, int end) {
   int temp;
   if(end-start+1 > 2) {
      temp = (end-start+1)/3;
      StoogeSort(a, start, end-temp);
      StoogeSort(a, start+temp, end);
      StoogeSort(a, start, end-temp);
   }
   if(a[end] < a[start]) {
      temp = a[start];
      a[start] = a[end];
      a[end] = temp;
    }
}
int main() {
   int m, i;
   cout<<"\nEnter the number of data element to be sorted: ";
   cin>>m;
   int arr[m];
   for(i = 0; i < m; i++) {
      cout<<"Enter element "<<i+1<<": ";
      cin>>arr[i];
   }
   StoogeSort(arr, 0, m-1);
   cout<<"\nSorted Data ";
   for (i = 0; i < m; i++)
      cout<<"->"<<arr[i];
   return 0;
}

出力

Enter the number of data element to be sorted: 4
Enter element 1: 6
Enter element 2: 7
Enter element 3: 3
Enter element 4: 2
Sorted Data ->2->3->6->7

  1. バブルソートを実装するC++プログラム

    バブルソートは、比較ベースのソートアルゴリズムです。このアルゴリズムでは、隣接する要素が比較および交換されて、正しいシーケンスが作成されます。このアルゴリズムは他のアルゴリズムよりも単純ですが、いくつかの欠点もあります。このアルゴリズムは、多数のデータセットには適していません。並べ替えタスクの解決には時間がかかります。 バブルソート手法の複雑さ 時間計算量:最良の場合はO(n)、O(n 2 )平均および最悪の場合 スペースの複雑さ:O(1) Input − A list of unsorted data: 56 98 78 12 30 51 Output &mi

  2. シェーカーソートを実行するC++プログラム

    シェーカーソートは、指定されたデータをソートするために使用されます。シェーカーソートは、バブルソートとは異なり、配列を両方向に並べ替えます。このアルゴリズムの最悪の複雑さはO(n ^ 2)です。 アルゴリズム Begin    ShakerSort() function has ‘arr’ the array of data and ‘n’ the number of values, in the argument list.    // Implement Sorting algorithm using