给定N张扑克牌和一个随机函数,设计一个洗牌算法
2015-05-19 20:32
281 查看
#include <iostream> #include <time.h> using namespace std; void swap(int &a, int &b){ int t = a; a = b; b = t; } void randomShuffle(int a[], int n){ for(int i = 0; i < n; ++i){ int j = rand() % (n - i) + i; swap(a[i], a[j]); } } int main(){ srand((unsigned)time(NULL)); int n = 9; int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; randomShuffle(a, n); for(int i = 0; i < n; ++i) cout << a[i] << endl; return 0; }
相关文章推荐
- 给定N张扑克牌和一个随机函数,设计一个洗牌算法
- 给定N张扑克牌和一个随机函数,设计一个洗牌算法
- 给定N张扑克牌和一个随机函数,设计一个洗牌算法
- 给定N张扑克牌和一个随机函数,设计一个洗牌算法
- 给定N张扑克牌和一个随机函数,设计一个洗牌算法
- N张牌和随机函数,设计一个洗牌算法
- A的大小为n,其中的每相邻的两个元素之间差的绝对值为1,例如A={4 5 6 5 6 7 8 9 10 9},给定A和t,设计一个程序,求出t在A中的位置
- 给定两个字符串,请设计一个方法来判定其中一个字符串是否为另一个字符串的置换(容易)
- 程序员面试金典——解题总结: 9.18高难度题 18.8给定一个字符串s和一个包含较短字符串的数组T,设计一个方法,根据T中的每一个较短字符串,对s进行搜索
- 17.9设计一个函数,找到给定单词在一本书中的出现次数
- PTA 求链式线性表的倒数第K项 给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字。
- 给定有向图,设计一个算法,找出两个结点之间是否存在一条路径
- 有一棵二叉树,请设计一个算法,按照层次打印这棵二叉树。 给定二叉树的根结点root,请返回打印结果,
- 给定一棵二叉树,设计一个算法,创建含有某一深度上所有结点的链表(比如:若一棵树的深度为D,则会创建出D个链表)
- 给定一个样本输入向量P,和目标向量T,设计单层感知机进行分类
- 程序员面试金典: 9.4树与图 4.2给定有向图,设计一个算法,找出两个节点之间是否存在一条路径。
- 有一堆扑克牌,其中某张牌的张数超过了扑克牌总数的一半,请找到这张牌。写出算法思路、代码实现和算法的时间复杂度,要求算法尽可能高效。假设给定一个扑克牌的数组poker和它的大小n,请返回所求的扑克牌。
- 给定一个单向链表(长度未知),请设计一个既节省时间又节省空间的算法来找出该链表中的倒数第m个元素。实现这个算法,并为可能出现的特例情况安排好处理措施。“倒数第m个元素”是这样规定的:当m=0时,链表的
- 已知一个矩阵 A(m*n) 的元素每行每列都按从小到大有序, 试设计一个算法判断任一给定值 k 是否在矩阵 A(m*n) 中
- 设计一个算法,判断给定的一棵二叉树是否是二叉排序树(二叉树的所有关键字均为正整数)