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

BogoSortまたは順列ソート用のC++プログラム?


Bogosortは、コレクションがソートされるまで、コレクションをランダムにシャッフルします。 BogoSortは、効果のないアルゴリズムベースの順列と組み合わせであるため、順列ソートとして知られています。 BogoSortは非常にフロップソート手法であり、ショットガンソート、バカソート、モンキーソート、またはスローソートとも呼ばれます。 。アルゴリズムは、ソートされたものが見つかるまで、入力の順列を連続的に生成します。

Input - 53421
Output - 12345

説明

ボゴソートでは、配列は並べ替えられていない要素で構成され、配列要素が正しいかどうかをチェックします。そうでない場合は、要素をランダムに交換して配列要素の位置を変更し、配列が並べ替えられるまでこのプロセスを繰り返します。

#include <iostream>
#include <stdlib.h>
using namespace std;
int is_sorted(int *arr, int n) {
   while ( --n >= 1 ) {
      if ( arr[n] < arr[n-1] ) {
         return 0;
      }
   }
   return 1;
}
void shuffle(int *arr, int n) {
   int temp, r;
   for(int i=0; i < n; i++) {
      temp = arr[i];
      r = rand() % n;
      arr[i] = arr[r];
      arr[r] = temp;
   }
}
void bogosort(int *arr, int n) {
   while ( !is_sorted(arr, n) ) {
      shuffle(arr, n);
   }
}
int main() {
   int arr[] = { 5, 3, 4, 2, 1 };
   int i;
   bogosort(arr, 5);
   for (i=0; i < 5; i++) {
      cout<< arr[i]<<"\t";
   }
}

  1. シェーカーソートを実行する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

  2. BogoSortまたは順列ソート用のPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −配列が与えられたので、順列ソートの概念を使用して配列をソートする必要があります。 BogoSortは順列ソートとも呼ばれ、パラダイムの生成とテストに基づいています。 それでは、以下の実装のソリューションを見てみましょう- 例 # random module import random # Sort def bogoSort(a):    n = len(a)    while (is_sorted(a)== False):