int data[100000000];

constexpr int data_size = sizeof data / sizeof *data;


for( auto& datum : data )

    datum = rand() % 2;

// 0 과 1로만 된 난수 배열이야.


int count1 = 0;

for( const auto datum : data )

    count1 += datum;

// 1의 갯수를 셌어.


const int count0 = data_size - count1;

for( int i = 0; i < count0; ++i )

    data[ i ] = 0;

for( int i = count0; i < data_size; ++i )

    data[ i ] = 1;

// 정렬 끝.


이게 counter 계열 소트의 본질이잖아?

별로라고???