악어새와 좀개구리밥
[C언어] Fisher-Yates Shuffle 본문
728x90
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_ARRAY_SIZE 500
void swap(int* a, int* b) {
int temp = *b;
*b = *a;
*a = temp;
}
int main() {
int i, j;
int ar[MAX_ARRAY_SIZE] = { NULL, };
//Array에 data 저장
for (i = 0; i < MAX_ARRAY_SIZE; i++)
ar[i] = i + 1;
//Fisher-Yates Shuffle
srand((unsigned)time(NULL));
for (i = 0; i < MAX_ARRAY_SIZE - 2; i++) {
j = rand() % MAX_ARRAY_SIZE;
swap(&ar[j], &ar[i]);
}
for (i = 0; i < MAX_ARRAY_SIZE; i++)
printf("%d ", ar[i]);
return 0;
}
'알고리즘' 카테고리의 다른 글
[GitHub] git push시 오류 (0) | 2021.11.03 |
---|---|
[C언어] quick sort (0) | 2021.10.12 |
[C언어] 내장함수 qsort()로 구조체 정렬 (0) | 2021.10.10 |
[C언어]구조체로 이중연결리스트 정렬 구현 (0) | 2021.09.15 |
Comments