최상단

컨텐츠

[Tip] 간단한 Shuffle 알고리즘 코드.

글 정보

Category
컴퓨터 이야기
2007. 3. 15. 15:33

본문

#include <stdio.h>

#define MAX_ARRAY    10

void generate_random(int *random_array, int size)
{
    int i, random_number, temp_value;

    for( i = 0; i < size; i++ )
        random_array[i] = i;

    for( i = size - 1; i > 0; i-- )
    {
        random_number = (rand() + rand()) % i;

        // swap
        temp_value = random_array[i];
        random_array[i] = random_array[random_number];
        random_array[random_number] = temp_value;
    }
}

int main(void)
{
    int i, random_value[MAX_ARRAY];

    generate_random(&random_value[0], MAX_ARRAY);

    for( i = 0; i < MAX_ARRAY; i++ )
        printf("%d\n", random_value[i]);

    return 0;
}

학교다닐 때 과제를 하다보면 이러한 서플 알고리즘을 사용해야될 경우가 많다.
보통...똑같은 숫자가 안나올때까지 확인하면서..
하나 생성하고 지금까지 만들어진 값과 loop 돌면서 비교해서 있으면 버리고.-_-;
최악의 알고리즘으로-_-;;; 하진 않았던가?ㅡ.ㅡ;
물론-_-................
난 옛날에 그렇게 햇기 때문에-_-이런걸 홈피에 올리는거지만..ㅡㅜㅋㅋㅋㅋ
(조교들고 그렇게 가르쳐줬었고-_-;; 나도 그렇게 가르쳤다;;)

------------------------------------------------------------------------------
이 코드는 KLDP에서 글을 보다-0-
저장시켜놨던거...
출처 : http://kldp.org/node/78905

뭐..코드는 따로 설명할 필요없이. 보면 OK?

트랙백과 댓글 여닫기

TOP