シャッフル
備考 : 要素をごちゃ混ぜにすること
C言語
example.c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int array[5] = { 1, 2, 3, 4, 5 };
// 乱数の初期化
srand((unsigned int)time(NULL));
// 要素をシャッフル
int length = sizeof(array) / sizeof(array[0]);
for (int i = 0; i < length; i++)
{
int r = rand() % length;
int tmp = array[i];
array[i] = array[r];
array[r] = tmp;
}
// シャッフルされた結果を出力
for (int i = 0; i < length; i++)
{
printf("%d番目 : %d\n", i, array[i]);
}
return 0;
}
C++
example.cpp
#include <iostream>
#include <vector>
#include <random>
int main()
{
std::vector<int> v = { 1, 2, 3, 4, 5 };
// 乱数の初期化(メルセンヌツイスター法)
std::random_device rd;
std::mt19937 mt(rd());
// 要素をシャッフル
std::shuffle(v.begin(), v.end(), mt);
// シャッフルされた結果を出力
for (int i : v)
{
std::cout << i << std::endl;
}
return 0;
}
C#
example.cs
using System;
using System.Collections.Generic;
static int Main(string[] args)
{
List<int> list =
new List<int>()
{
1, 2, 3, 4, 5
};
// 乱数の初期化
Random random = new Random();
// 要素をシャッフル
int n = list.Count;
while (n > 1)
{
n--;
int k = rng.Next(n + 1);
int tmp = list[k];
list[k] = list[n];
list[n] = tmp;
}
// シャッフルされた結果を出力
foreach (int i in list)
{
Console.WriteLine($"{i}\n");
}
}
ソート
備考 : 要素を基準に則って並び替えること
C言語
example.c
#include <stdio.h>
int main()
{
int array[5] = { 5, 4, 2, 1, 3 };
// 昇順に要素をソート(バブルソート)
int length = sizeof(array) / sizeof(array[0]);
for (int i = 0; i < length; i++)
{
for (int j = i + 1; j < length; j++)
{
if (array[i] > array[j])
{
int tmp = array[i];
array[i] = array[j];
array[j] = tmp;
}
}
}
// ソートされた結果を出力
for (int i = 0; i < length; i++)
{
printf("%d番目 : %d\n", i, array[i]);
}
return 0;
}
C++
example.cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main()
{
std::vector<int> v = { 5, 4, 2, 1, 3 };
// 昇順に要素をソート
std::sort(v.begin(), v.end());
// ソートされた結果を出力
for (int i : v)
{
std::cout << i << std::endl;
}
return 0;
}
C#
example.cs
using System;
using System.Collections.Generic;
static int Main(string[] args)
{
List<int> list =
new List<int>()
{
5, 4, 2, 1, 3
};
// 昇順に要素をソート
list.Sort();
// ソートされた結果を出力
foreach (int i in list)
{
Console.WriteLine($"{i}\n");
}
}