算法
jerryzcx
这个作者很懒,什么都没留下…
展开
-
结构上的算法----栈和队列
常见问题:栈的压入和弹出序列,验证使用一个数组襰原创 2014-06-06 10:55:44 · 381 阅读 · 0 评论 -
我眼中的排序
需要注意的是:排序考虑的因素:记录的规模size排序关键字的结构及初始状态稳定性的要求语言工具的条件物理存储结构时间复杂度空间复杂度我知道的排序算法:she原创 2014-06-06 10:42:54 · 429 阅读 · 0 评论 -
C中常用库函数的简单实现
strcpystrncpystrlen原创 2014-03-04 15:25:14 · 584 阅读 · 0 评论 -
算法 杨氏矩阵搜索(二维数组中的查找)
http://blog.csdn.net/sgbfblog/article/details/7745450http://blog.csdn.net/v_july_v/article/details/7085669转载 2014-03-05 23:41:43 · 488 阅读 · 0 评论 -
求斐波那契(Fibonacci)数列中的F(n)
题目:思路:矩阵乘法,时间复杂度O(logN)原创 2014-03-18 15:38:26 · 519 阅读 · 0 评论 -
算法 数组中的最长递增子序列
算法 数组中的最长递增子序列原创 2014-03-31 22:57:58 · 388 阅读 · 0 评论 -
算法 线性时间排序算法
计数排序void countsort(int *ary,int size,const int k){ int sort[size];// 用于输出排好序的数组 int c[k];// 用于计数的数组 memset(c,0,k*sizeof(int));// 初始化为0 // 计数 for(int i=0;i<size;i++) { c[ary[i]]++;// 保存原数原创 2014-03-22 17:04:46 · 621 阅读 · 0 评论 -
算法 求指定范围内素数
参考:http://blog.csdn.net/adamjy/article/details/23514531原创 2014-04-12 10:40:38 · 741 阅读 · 0 评论 -
算法 Longest Repeated Sequence(最大重复子序列 微软编程一小时 题目2)
先写下思路序列问题一般要向二wv原创 2014-04-08 17:39:56 · 1183 阅读 · 0 评论 -
算法 大数计算:加减乘除,模,阶乘,进制转换(大数除法取余)
算法 大数计算:加减乘除,模,阶乘,进制转换(大数除法取余)原创 2014-03-26 14:04:25 · 1687 阅读 · 0 评论 -
算法 二分求幂(快速取幂)
// 非递归double mypow(double base,int r){ double res=1.0; while(r) { if((r&1)==1) res*=base; base*=base; r=r>>1; } return res;}// 递归double mypow(double base,int r){ if(r==0) r原创 2014-03-26 00:52:16 · 793 阅读 · 0 评论 -
算法 求最小值,最大值,中位数,顺序统计量
算法 求最小值,最大值,中位数原创 2014-03-24 12:22:00 · 4585 阅读 · 0 评论 -
结构上的算法----位
位操作不外乎与,或,非,异或,左移,dk原创 2014-06-06 11:13:38 · 443 阅读 · 0 评论 -
结构上的算法----链表
链表需要注意的是1.链表是指针使用的体现,所以指针类的问题都要考虑2.判空3.头指针4.尾部5.插入,删除建议先将next连接起来再断开前面,最后free6.尽量向O(1)考虑时,可以利用多个指针分别指向pre,cur,next7.节点操作,可以保持结构(需要知道pre结点),也可以利用O(1)操作下个节点,然后交换数据8.环9.逆置,换位等常见问题原创 2014-06-06 10:39:29 · 446 阅读 · 0 评论 -
结构上的算法----二维数组
顺时针打印矩阵关键是循环的控制点是while(col>start*2&&row>start*2)//start是表示每一圈循环的起点,通常是在对角线上,所以是点(start,start)杨氏矩阵的查找两种yyif原创 2014-06-06 10:52:45 · 491 阅读 · 0 评论 -
算法 二分查找(折半查找)
算法 二分查找(折半查找)原创 2014-02-25 17:11:29 · 684 阅读 · 0 评论 -
结构上的算法----字符串
模式匹配KMP替换空格字符串的全排列原创 2014-06-06 11:29:41 · 601 阅读 · 0 评论 -
数学中的算法----数,数列
数列问题真的很头疼,需要不少数学基础和概念,有些复杂不好记的早丢了,只能总结些定义一看即懂的数列了常见:斐波那契数列原创 2014-06-06 11:19:31 · 913 阅读 · 0 评论 -
算法 (连续)子数组的最大和(及起始点)
算法 (连续)子数组的最大和(及起始点)原创 2014-03-31 22:57:32 · 488 阅读 · 0 评论 -
算法 DFS深度优先搜索
算法 DFS深度优先搜索原创 2014-03-31 22:41:44 · 430 阅读 · 0 评论 -
算法 BFS广度优先搜索
算法 BFS广度优先搜索原创 2014-03-31 22:41:22 · 636 阅读 · 0 评论 -
算法导论-计算时间复杂度主定理
参考:http://blog.chinaunix.net/uid-25267728-id-3802135.htmlhttp://www.cppblog.com/tanky-woo/archive/2011/04/12/144020.html转载 2014-05-29 11:46:05 · 748 阅读 · 0 评论 -
算法 最长公共子序列LCS
算法 最长公共子序列子序列的定义:如果Z是A的子序列,则A中包含Z的所有排列元素,且这些元素在各自排列中的顺序是一致的例如Z={BCA},A={ABCBDAB}最优子结构设C是LCS的长度则if(i==0||j==0)C[i,j]=0;elseif(x[i]==y[j])C[i,j]=C[i-1,j-1];elseif(x[i]!=y转载 2014-03-25 21:57:06 · 377 阅读 · 0 评论 -
结构上的算法----数组
数组实际上是以数为索引,以某种结构为排列的一种结构,通常原创 2014-06-06 11:11:08 · 454 阅读 · 0 评论 -
结构上的算法----树
注意:前序后序不能唯一确定树,中序可能有多种情况树的问题都优先向递归tf原创 2014-06-06 10:50:19 · 407 阅读 · 0 评论 -
查找中的算法----HASH查找,二分查找,堆查找,B树查找,字典树,海量查找
查找中的算法----HASH查找,二分查找,堆查找,海量查找原创 2014-06-06 20:18:09 · 2390 阅读 · 0 评论 -
算法 约瑟夫环问题
算法 约瑟夫环问题转载 2014-03-18 14:48:16 · 436 阅读 · 0 评论 -
算法 全排列问题,组合问题,子集问题
算法 全排列问题八皇后字符串全排列原创 2014-03-31 22:33:39 · 571 阅读 · 0 评论 -
算法 基于比较的排序
算法 基于比较的排序原创 2014-03-06 16:55:17 · 1905 阅读 · 0 评论 -
求出栈序列,二叉树,二叉搜索树的计数问题
求出栈序列,二叉树,二叉搜索树的计数问题原创 2014-03-04 09:55:00 · 1061 阅读 · 0 评论 -
算法 最小生成树之 kruskal算法+并查集
算法 最小生成树之 kruskal算法+并查集kruskal算法需要从不同连通分量中选择连结边权最小的加入到生成树中,每个连通分量可以看成一个等价类,初始每个顶点都是一个连通分量,将新边加入类似等价类的合并过程,因此结合并查集算法实现kruskalint father[N];int rank[N];void initset(int n){ for(int i原创 2014-03-26 21:09:30 · 622 阅读 · 0 评论 -
算法 Bellman-Ford算法,Johnson算法
算法 Bellman-Ford算法,依次对顶点执行relax松弛操作依次对边执行判断如果对所有边(终点的最短路径估计==起点的最短路径估计+此边权重)则说明无权重为负的环路Johnson算法,先执行Bellman-Ford算法测试是否有权重为负的环路如果没有则执行v次dijkstra算法// by zjerry 还是再看看算法导论的解释吧....没有原创 2014-03-27 21:10:35 · 1294 阅读 · 0 评论 -
算法 旋转字符串
算法 旋转字符串转载 2014-03-05 22:29:38 · 652 阅读 · 0 评论 -
算法 牛顿迭代法(一定精度内实现sqrt)
算法 牛顿迭代法(一定精度内实现sqrt)转载 2014-03-06 15:20:00 · 2259 阅读 · 0 评论 -
求链表的逆置
typedef struct node{ int data; node* next;}node;const int N=5;const int a[N]={1,2,3,4,5};node* create(){ node* head=(node*)malloc(sizeof(node)); head->next=null;原创 2014-03-05 17:20:53 · 422 阅读 · 0 评论 -
求二进制数中1的个数
问题描述任意给定一个32位无符号整数n,求n的二进制表示中1的个数,比如n = 5(0101)时,返回2,n = 15(1111)时,返回4这也是一道比较经典的题目了,相信不少人面试的时候可能遇到过这道题吧,下面介绍了几种方法来实现这道题,相信很多人可能见过下面的算法,但我相信很少有人见到本文中所有的算法。如果您上头上有更好的算法,或者本文没有提到的算法,请不要吝惜您的代码,分享的时候,也转载 2013-11-23 00:19:51 · 391 阅读 · 0 评论 -
求模取幂的方法
反复平方法快速取幂a^b mod n//伪代码c=0d=1let be the binary representation of bfor i=k downto 0 c=2c d=(d*d) mod n if bi ==1 c=c+1 d=(d*a)mod nreturn d转载 2014-03-04 17:02:30 · 412 阅读 · 0 评论 -
关于swap两个数
对两个数交换,常见的写法是基于中间变量:void swap(int *a,int *b){ int temp; temp=*a; *a=*b; *b=temp;}然后就有人想出不使用中间变量的方法:1.使用加减法void swap(int *a,int *b){ *a=*a+*b; *b=*a-*b; *a=*a-*b;}加原创 2013-11-21 21:42:26 · 611 阅读 · 0 评论 -
算法 RMQ(Range Minimum Query)问题:Sparse-Table算法
Sparse-Table算法是一个在线算法 所谓在线算法,是指用户每输入一个查询便马上处理一个查询。该算法一般用较长的时间做预处理,待信息充足以后便可以用较少的时间回答每个查询。ST(Sparse Table)算法是一个非常有名的在线处理RMQ问题的算法,它可以在O(nlogn)时间内进行预处理,然后在O(1)时间内回答每个查询。首先是预处理,用动态规划(DP)解决。设转载 2014-03-04 21:29:40 · 522 阅读 · 0 评论 -
算法 单源最短路径Dijkstra
算法 单源最短路径Dijkstra类似BFS基于贪心算法要求权值非负#include using namespace std;const int N=102;const int INF=1000;// 权值最大范围,注意不要轻易使用int型范围 // 在计算 int tmp=min+g[k][j];过程中可原创 2014-02-24 15:25:16 · 400 阅读 · 0 评论