📜  shuffle 函数 in - C 编程语言(1)

📅  最后修改于: 2023-12-03 15:20:08.249000             🧑  作者: Mango

Shuffle 函数 in C 编程语言

在 C 编程语言中,Shuffle 函数用于将一个数组或列表中的元素以随机的顺序重新排列。这个函数对于需要随机化数据集或实现洗牌算法非常有用。

以下是一个示例代码片段,演示了如何在 C 编程语言中实现 Shuffle 函数:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

// Shuffle 函数用于交换两个元素的位置
void swap(int *a, int *b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

// Shuffle 函数用于随机化数组中元素的顺序
void shuffle(int arr[], int size) {
    // 使用当前时间作为随机数生成器的种子
    srand(time(NULL));

    // 从最后一个元素开始,依次与随机位置的元素进行交换
    for (int i = size - 1; i > 0; i--) {
        int j = rand() % (i + 1); // 生成一个 [0, i] 范围内的随机数
        swap(&arr[i], &arr[j]);
    }
}

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int size = sizeof(arr) / sizeof(arr[0]);

    printf("原始数组:");
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }

    shuffle(arr, size);

    printf("\n随机化后的数组:");
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }

    return 0;
}

使用上述代码片段,你可以在 C 编程语言中实现一个 Shuffle 函数。这个函数使用当前时间作为随机数生成器的种子,然后通过不断交换数组中的元素,实现了将数组随机化的功能。

以上代码在原始数组 {1, 2, 3, 4, 5} 上进行了随机化操作,并打印出随机化后的结果。你可以根据需要修改数组的初始值和长度来使用这个 Shuffle 函数。