ランダムシャッフルアルゴリズムのC ++実装

ランダムシャッフルアルゴリズムは、データのランダムなセットを作ることです。

#include <iostreamの> 
する#include <ベクトル> 
の#include <CTIME> 
の#include <cstdioを>
 使用して 名前空間STD; 

// ランダムなシャッフルアルゴリズム
ボイドシャッフル(ベクトル< INT >&VEC)
{ 
    int型 N- = vec.size()。
     IFは(N - <= 0 リターン; 
    srand関数(時間(0 )); 

    のためにINT iが= 0 ; I <N-I ++ 
    { 
        // ビットの各値iが前のビットに関係していないことを確認I 
        INTインデックスを= I +ランド()%( N- I);
        スワップ(VEC [インデックス]、VEC [I])。
    } 
} 

int型のmain()
{ 
    ベクトル < INT > VEC。
    以下のためにINT iが= 1 ; I <= 10 ; I ++ 
    { 
        vec.push_back(I)。
    } 
    シャッフル(VEC)。

    以下のため(これオート:VEC)
            はcout <<それ<< "  " ;
    リターン 0 ; 
}

 

おすすめ

転載: www.cnblogs.com/xiaokang01/p/12603618.html