
算法
dreamiond
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
游戏算法——Knuth重排
Knuth重排算法,又称洗牌算法,费歇尔算法。是一种很简单的洗牌算法,在游戏工程中可能用到,在这里整理一下。C++实现:void ShuffleVector(vector<int>& numbers) { for (int i = 0; i < numbers.size(); i++) { //根据系统时间设计随机数种子,否则每次洗牌得到的结果将相同 srand原创 2017-06-12 14:04:35 · 1849 阅读 · 0 评论 -
C渣的算法疑问——这你不断链?哦形参是指针引用。
对于算法: 使用递归方法,删除无头结点单链表中所有值为x的结点。 考虑下面程序:void Del_X_3(LinkList &L,ElemType x) { LNode *p; if(L==NULL) return ; if(L->data==x) { p=L; L=L->next;原创 2017-09-20 21:22:37 · 1395 阅读 · 0 评论 -
基础算法题——两种遍历方式可以唯一确定一棵二叉树吗?
按照数据结构课本上的说法: 前序遍历+中序遍历 后序遍历+中序遍历 可以唯一确定一棵二叉树。 反例: 1 1 / \ 1 1 上述两棵二叉树的前序序列和中序序列都为(1,1)...原创 2018-11-07 13:12:14 · 14110 阅读 · 2 评论 -
基础算法题——GCD欧几里得最大公约数算法
int gcd(int a, int b) { int s = a < b ? a : b; int l = a > b ? a : b; int tmp = -1; while (s) { tmp = s; s = l%s; l = tmp; } return l; }原创 2019-03-06 15:10:08 · 472 阅读 · 0 评论 -
基础算法题——牛顿迭代法求近似平方根
方法描述: 首先随便猜一个近似值x,然后迭代地令x=(x+a/x)/2,迭代个六七次后x的值就已经相当精确了。 代码实现: int mysqrt(int x) { if (x == 0) return 0; double last = 0; double res = 1; while (abs(last-res)>1e-9) { last = res; res = ...原创 2019-03-15 09:42:02 · 1001 阅读 · 0 评论