
算法
文章平均质量分 54
uestcjerry
这个作者很懒,什么都没留下…
展开
-
八皇后问题
皇后是国际象棋威力最大的棋子,wom原创 2014-10-16 15:17:29 · 523 阅读 · 0 评论 -
计算年月日函数
一:判断是否为闰年bool isUnNormalYear(const long long year){ if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) return true; else return false;}二:判断某年某月某日为星期几int CaculateWeek原创 2016-04-05 14:19:09 · 4018 阅读 · 0 评论 -
求无向图顶点之间的所有最短路径
无向图顶点之间所有最短路径原创 2016-03-09 11:55:27 · 10690 阅读 · 0 评论 -
高效生成素数
#include <iostream>#include <cmath>#include <ctgmath>#define MAX 100000000int main(){ bool *tagArray = new bool[MAX+1]; for (int i = 1; i <= MAX; ++i) { if (i % 2 == 1) t原创 2016-03-01 16:01:39 · 3944 阅读 · 0 评论 -
BFS
总体描述BFS 是最简单的图搜索算法之一。 Prim最小生成树算法和Dijkstra的单源最短路径算法都使用了类似BFS的思想。给定图G=(V, E)和一个可以识别的源节点s, BFS能够计算出从源点s到每个可以到达的节点的距离(最少的边数),同时生成一颗“BFS生成树“。BFS的搜索过程是沿着其广度方向扩展的,算法需要在发现了所有距离源点s为k的所有节点之后,才会发现距离源节点s为k+1的其他节原创 2015-12-08 21:27:17 · 802 阅读 · 0 评论 -
dfs
问题一:问题描述: 输入一个数n,输出1~n的全部排列。分析我们可以将这个问题换一个思路来描述,假设有123编号的扑克牌和123编号的箱子,需要将扑克放到箱子里去,一共有多少种放的方法呢?第一个箱子有3种,第二个剩下2种,最后一个1种,如此得到一种排列;那么,取出最后一个盒子的牌,退到倒数第二个箱子,此时我们有2种选择,去掉刚才已经选择过的,如此又得到了第二种排列;再退到倒数第三个箱子。。。这个原创 2015-12-08 16:14:36 · 492 阅读 · 0 评论 -
最短路径
问题一:只有五行的算法 floyd-warshallA准备去旅游,有些城市之间有公路,有些则没有,为了节省经费以及计划旅途,A希望知道任意两个城市之间的最短路程input:4 81 2 21 3 61 4 42 3 33 1 73 4 14 1 54 3 12第一行N M,代表节点数和边数 后面跟着 M 行代表边以及权值上图中有4个城市8条公路,数字代表公路的长短。 我们需要求任原创 2015-12-13 16:29:30 · 1868 阅读 · 0 评论 -
堆
一、描述堆其实就是一个数组,它被看做是一个近似完全二叉树,树上的每个元素的每个节点对应数组中的一个元素。除了最底层没有填充完,该树是完全的,而且是从左向右填充。表示堆的数组包括两个属性: A.length 通常表示数组元素的个数 A.heap_size 通常表示有多少个堆元素存储在数组中也就是说 A[1 … A.length] 可能都存有数据,但是只有 A[1 … A.heap_size] 存放原创 2015-12-16 21:27:10 · 507 阅读 · 0 评论 -
快速排序
概要理解快速排序的思想理解分治以及排序过程的设计巧妙之处深入理解时间复杂度分析,最好与最坏情况下的时间复杂度分析,生成树分析法,代入法,主方法。伪代码//返回的是分割点,即主元//循环维护的部分为四个部分// p...i...j.....r// p..i 维护 <= r 的元素// i+1 ... j 维护 > r 的元素// j+1 ... r-1 的元素暂时没有处理,一次过程只原创 2015-11-18 20:43:55 · 348 阅读 · 0 评论 -
邻接表
.h 文件#include <stdio.h>#include <stdlib.h>#define handler_error(msg) \ do { perror(msg); return EXIT_FAILURE; } while (1)struct arcnode{ size_t data; struct arcnode *next;};struct vexnod原创 2015-09-09 15:06:57 · 338 阅读 · 0 评论 -
分治策略
分治策略步骤:分解解决合并递归情况和基本情况:求解递归式时,可以使用三种方法,a 代入法 b 递归树法 c 主方法最大子数组A[low..high]的任何连续子数组A[i..j]所处的位置必然是以下几个情况之一:完全位于子数组A[low..mid] low<=i<=j<=mid完全位于子数组A[mid..high] midFIND_MAX_CROSSING_SUBARRAY(A, l原创 2015-03-13 11:31:25 · 459 阅读 · 0 评论 -
双向循环链表
使用哨兵(头节点)实现双向循环链表,所谓哨兵(头结点):哑对象,简化边界条件处理。假设在链表L中设置一个对象L.nil ,该对象 代表NIL,但也具有和其他对象相同的各个属性。对于链表代码中出现的每一处对NIL的引用,都替换成L.nil 。这样的调整将一个常规的双向链表变成一个有哨兵的双向循环链表。哨兵位于表头和表尾之间。L.nil.next 指向表头, L.n原创 2014-12-22 13:10:14 · 494 阅读 · 0 评论 -
顺序栈 链栈
开始积累并且熟练常用的数据结构和算法,实践实践再实践!!!!!!以前的不足之处在于动手太少,来到一个新的环境,新的挑战,科研要搞,论文要读,代码也一定要坚持写,坚持学习,不断提高自己,少抱怨,多脚踏实地思考实践。虽然自己很菜,虽然项目坑爹,虽然读论文有时候很枯燥很无聊甚至以后根本用不上这些毕竟产业界还是要靠真本事吃饭而不是忽悠两下就能混下去的。没关系,至少我还有原创 2014-12-18 21:56:57 · 371 阅读 · 0 评论 -
队列
循环队列#include #include #define QUEUE_TYPE inttypedef struct QUEUE{ QUEUE_TYPE *head; //pointer start int front; //head int rear; //tail int size;原创 2014-12-19 00:00:20 · 418 阅读 · 0 评论 -
计算机科学经典著作
以下著作均可在此地址下载: http://www.verycd.com/topics/24717/中文名: 计算机科学经典著作英文名: Computer Science1.The Art of Computer Programming Author: Donald.E.Knuth Web site: http://www-cs-facu转载 2014-12-18 23:15:52 · 880 阅读 · 0 评论 -
qsort快速排序
非常使用的快速排序算法,不稳定排序#include#include/* * qsort invoke this function */int compare_integers( void const *a, void const *b ){ register int const *pa = a; register int const *pb = b;原创 2014-12-17 11:22:56 · 359 阅读 · 0 评论 -
大数加法 大数乘法
#include<iostream>#include<stdio.h>#include<string.h>#define MAXLEN 300//大数的长度using namespace std;int Input(char n[])//将大数读入的函数{ char s[MAXLEN]; int i, l; for (i = 0; i < MAXLEN; i++)转载 2016-05-15 21:46:26 · 936 阅读 · 0 评论