📅  最后修改于: 2023-12-03 15:20:08.249000             🧑  作者: Mango
在 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 函数。