Fisher-Yates算法生成数组元素的随机排列,即它随机打乱数组的所有元素。由于Fisher-Yates算法是无偏差的,因此数组的所有排列都是等可能的。一个在C++中实现Fisher-Yates算法进行数组洗牌的程序如下所示:示例 #include #include #include using namespace std; int main() { int n; cout
两个数的最大公约数(GCD)是同时整除这两个数的最大数。例如:假设我们有两个数字63和21。63 = 7 * 3 * 3 21 = 7 * 3 所以,63和21的最大公约数是21。递归欧几里德算法使用一对正整数a和b,并返回b和a%b,直到b为零,从而计算GCD。一个使用递归欧几里德算法求两个数的最大公约数的程序如下所示:示例 在线演示 #include using namespace std; int gcd(int a, int b) ... 阅读更多
队列是一种抽象数据结构,它包含一组元素。队列实现FIFO机制,即先插入的元素也先删除。换句话说,在队列中,最不近添加的元素最先被删除。一个使用数组实现队列的程序如下所示:示例 #include using namespace std; int queue[100], n = 100, front = -1, rear = -1; void Insert() { int val; if (rear == n - 1) cout