shuffle(arr, n);for(inti =0; i < n; i++) { printf("%d ", arr[i]); } printf("\n");return0; } 3、使用 rand() 函数和双重交换法 通过两次随机交换来打乱数组。虽然时间复杂度为O(n),但相较于 Fisher-Yates 算法来说不太常用。 #include<stdio.h>#include<stdlib.h>#includevoidshuffle...
int a[] = {3,5,7,1,4};// 本程序考虑时间复杂度最小情况的乱序算法,O(t)=len-1 // 算法模仿彩票摇号,从全集中先取一个为第一位,再在剩余集合中取出一个为第2位,...// 直至最后一个,只是考虑空间利用,已排序集合利用全集的空间。int len=sizeof(a); // 全集元素数量 s...