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

シェーカーソートを実行する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 nested for loops.
   The parent loop will run on ‘i’ from 0 to n-1 and contains two loops inside.
   The first loop will run on ‘j’ from i+1 to n-1 and use swap() if a[j] < a[j-1].
   Decrement n.
   The second loop will run on 'k' from m-1 to i+1 and use swap() if a[k] < a[k-1].
   Increment i.
End

サンプルコード

#include<iostream>
using namespace std;
void swap(int *a, int *b) {
   int temp;
   temp = *a;
   *a = *b;
   *b = temp;
}
void ShakerSort(int a[], int m) {
   int i, j, k;
   for(i = 0; i < m;) {
      for(j = i+1; j < m; j++) {
         if(a[j] < a[j-1])
            swap(&a[j], &a[j-1]);
      }
      m--;
      for(k = m-1; k > i; k--) {
         if(a[k] < a[k-1])
            swap(&a[k], &a[k-1]);
      }
      i++;
   }
}
int main() {
   int n, i;
   cout<<"\nEnter the number of data element to be sorted: ";
   cin>>n;
   int a[n];
   for(i = 0; i < n; i++) {
      cout<<"Enter element "<<i+1<<": ";
      cin>>a[i];
   }
   ShakerSort(a, n);
   cout<<"\nSorted Data ";
   for (i = 0; i < n; i++)
      cout<<"->"<<a[i];
   return 0;
}

出力

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

  1. 均一二分探索を実行するC++プログラム

    ここでの均一二分探索では、ルックアップテーブルを使用して二分探索を実装します。テーブルルックアップはシフトと加算よりも高速であるため、これはバイナリ検索の改善です。このアプローチの時間計算量はO(log(n))です。 アルゴリズム Begin    Assign the data to the array in a sorted manner.    Calculate the maximum length of lookup array and declare a new array ‘del’.    As

  2. ストゥージソートを実行する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 n