题目:给定 n 个排好序的数,要求,随机打乱这个 n 个数的顺序,使其无序排列。
假设 n = 100
算法实现如下:
// Test.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <time.h> void SWAP(int* a,int* b) { int tmp = *a; *a = *b; *b = tmp; } int main(void) { int nums[100]; int i; int j; srand(time(NULL)); for (i = 0; i < 100; i ++) //生成有序序列 nums[i] = i; for (i = 0; i < 100; i ++) { j = rand() % 100; // 生成随机要交换的数的下标 SWAP(&nums[i], &nums[j]); //洗牌,随机交换两个数的位置 } for (i = 0; i < 100; i ++) printf("%d ", nums[i]); return 0; }