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

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


ここでは、ボゴソートと呼ばれる別のソートアルゴリズムを確認します。このソートは、順列ソート、愚かなソート、低速ソートなどとも呼ばれます。このソートアルゴリズムは、特に効果のないソート手法です。これは、生成とテストのパラダイムに該当します。ソートされるまで、順列を繰り返し生成します。概念は非常に簡単です。リストが並べ替えられるまで、要素をシャッフルするだけです。

アルゴリズム

bogoSort(array、n)

Begin
   while the arr is not sorted, do
      shuffle arr
   done
End

#include<iostream>
#include<cstdlib>
using namespace std;
bool isSorted(int arr[], int n) { //check whether the list is sorted
   or not
   while (--n > 1)
      if (arr[n] < arr[n - 1])
   return false;
return true;
}
void shuffle(int arr[], int n) {
   for (int i = 0; i < n; i++)
      swap(arr[i], arr[rand() % n]);
}
void bogoSort(int arr[], int n){
   while (!isSorted(arr, n))
      shuffle(arr, n);
}
main() {
   int data[] = {54, 74, 98, 5, 98, 32, 20, 13, 35, 40};
   int n = sizeof(data)/sizeof(data[0]);
   cout << "Sorted Sequence ";
   bogoSort(data, n);
   for(int i = 0; i <n;i++){
      cout << data[i] << " ";
   }
}

出力

Sorted Sequence 5 13 20 32 35 40 54 74 98 98

  1. C++での8進数から10進数への変換のプログラム

    入力として8進数を指定すると、タスクは指定された8進数を10進数に変換することです。 コンピューターの10進数は10進数で表され、8進数は0から7までの8進数で表されますが、10進数は0から9までの任意の数字にすることができます。 8進数を10進数に変換するには、次の手順に従います- 余りから右から左に数字を抽出し、それを0から始まる累乗で乗算し、(桁数)–1まで1ずつ増やします。 8進数から2進数に変換する必要があるため、8進数の基数は8であるため、累乗の基数は8になります。 指定された入力の桁にベースとパワーを掛けて、結果を保存します 乗算されたすべての値を加算して、10進数になる

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

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