算法
文章平均质量分 60
jasonkent27
这个作者很懒,什么都没留下…
展开
-
统计整数二进制表示中1的个数
这是一个很有意思的问题,也是在面试中最容易被问到的问题之一。这个问题有个正式的名字叫Hamming_weight,而且wikipedia上也提供了很好的位运算解决的方法,这个下面也会提到。解决这个问题的第一想法是一位一位的观察,判断是否为1,是则计数器加一,否则跳到下一位,于是很容易有这样的程序。int test(int n){int count=0;while转载 2014-10-17 11:41:05 · 389 阅读 · 0 评论 -
算法题1+2+...+N
题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。int solve(int n){ int i = 1; (n > 1) && (i = solve(n - 1) + n); return i;}原创 2014-10-17 10:34:06 · 504 阅读 · 0 评论 -
经典算法
前十个是来自圣经的十大算法:发起人的描述:《来自圣经的证明》收集了数十个简洁而优雅的数学证明,迅速赢得了大批数学爱好者的追捧。如果还有一本《来自圣经的算法》,哪些算法会列入其中呢?第一名:Union-find严格地说,并查集是一种数据结构,它专门用来处理集合的合并操作和查询操作。并查集巧妙地借用了树结构,使得编程复杂度降低到了令人难以置信的地步;用上一些递归技巧后,各种操作几乎都能用两转载 2014-10-17 10:25:59 · 450 阅读 · 0 评论 -
矩阵快速乘法---代码
矩阵乘法的核心代码:原创 2014-10-17 11:20:31 · 828 阅读 · 0 评论 -
斐波那契数列-矩阵乘法
先简单介绍一下矩阵乘法求斐波那契数列的原理f(n) 是第n项的值。f(1)= 1; f(2) =1;f(n)= f(n-1) + (n-2)下面的介绍是我从网上查到了,收益匪浅。分两步推导: 求斐波那契数列" title="矩阵乘法 求斐波那契数列" style="margin:0px; padding:0px; border:0px; list-转载 2014-10-17 11:09:42 · 1636 阅读 · 0 评论 -
Go Back N C语言实现(无ACK)
代码如下:#include #include #include "protocol.h"#include "datalink.h"#define MAX_SEQ 6#define DATA_TIMER 2600#define inc(k) if(k<MAX_SEQ) k=k + 1;else k = 0typedef struct //定义数据包packet原创 2014-08-19 18:41:02 · 2419 阅读 · 0 评论 -
多叉树 转换为二叉树 算法
多叉树转换为二叉树算法。算法描述:将多叉树的第一个儿子结点作为二叉树的左结点,将其兄弟结点作为二叉树的右结点。举例,如下图:树的结构为:typedef struct BinaryTreeNode{struct BinaryTreeNode* leftChild;struct BinaryTreeNode* rightChild;int value;};typed转载 2014-09-23 00:03:43 · 6380 阅读 · 0 评论 -
socket通信的几篇好文章
1. QTcpServer 和 QTcpSocket 的简单通信(双工噢): http://blog.csdn.net/qivan/article/details/7070284 2. 多客户端的CS模型(主要看Server类就好): http://blog.csdn.net/maverick1990/article/detail原创 2014-09-22 23:58:34 · 412 阅读 · 0 评论 -
选择重传协议 C语言实现
代码如下:#include #include #include "protocol.h"#include "datalink.h"#define MAX_SEQ 31#define DATA_TIMER 3800//calculagraph timer#define ACK_TIMER 1100#define NR_BUFS 16 //windows number#defi转载 2014-08-19 18:42:34 · 4750 阅读 · 8 评论 -
CStringArray使用方法(2)
代码如下://CArray arrroads; CStringArray road; CString temp="a|b|c|d|e"; int s0=temp.ReverseFind('|'); road.Add(temp.Mid(s0+1)); while(s0>0) { temp=temp.Mid(0,s0); s0=temp.Rev转载 2014-05-13 22:15:22 · 1397 阅读 · 0 评论 -
最小生成树(MST)三种实现方法C++版本
代码如下:#include #define MAXN 100 using namespace std ;ifstream cin("test.txt") ;ofstream cout("MST.out") ;const int infinity = 1000000 ;int cost[MAXN][MAXN],g[MAXN][MAXN],n,m=0;int dis[MAXN]原创 2015-03-06 21:50:46 · 1570 阅读 · 0 评论