数据结构
文章平均质量分 52
做题全AC
热爱开源,做只快乐的咸鱼。
展开
-
图 深度优先遍历(DFS)
这是转载的文章,原文请移步至 数据结构(C实现)------- 图的深度优先遍历。算法描述: 假设给定图G的初始状态是所有顶点均未曾访问过,在G中任选一顶点vi为初始的出发点,则深度优先遍历可定义如下: 首先访问出发点vi,并将其标记为已被访问过;然后,依次从vi出发遍历vi的每一个邻接点vj,若vj未曾访问过,则以vj为新的出发点继续进行深度优先遍历,直至图中所有和vi转载 2015-02-24 15:56:04 · 556 阅读 · 0 评论 -
dp——求最长公共子串
#include #include using namespace std;#define MAX_DATA 1050char src[MAX_DATA];char dst[MAX_DATA];int dp[MAX_DATA][MAX_DATA];int main(void){ int i , j ; int max = -1 , s_i = 0 , s_j = 0;原创 2017-03-03 16:24:35 · 311 阅读 · 0 评论 -
排序——归并排序
这边只是自己复习用的,时间有限就没有展开说,需要详细算法解释的请移步http://blog.csdn.net/morewindows/article/details/6678165/ #include using namespace std;#define MAX_NUM 1050int data[MAX_NUM];int ret[MAX_NUM];void swap原创 2017-03-02 10:44:48 · 269 阅读 · 0 评论 -
排序——堆排序
//堆排序#include using namespace std;#define MAX_NUM 1050int data[MAX_NUM];void swap2(int *a , int *b){ int tmp = *a; *a = *b; *b = tmp;}void adjust(int node , int N){ int start = node原创 2017-03-01 21:33:31 · 327 阅读 · 0 评论 -
排序——快速排序
来一波快速排序大法~~~#include using namespace std;#define MAX_NUM 100int data[MAX_NUM];int sort(int start ,int end){ int num = data[start]; while(start<end) { while( start num) end--; dat原创 2017-02-27 22:03:15 · 259 阅读 · 0 评论 -
排序——冒泡排序
#include using namespace std;#define MAX_NUM 100int data[MAX_NUM];//来一个冒泡排序void bubble_sort( int N){ int i , j ; for( i = 0 ; i < N ; i++) { int flag = 1 ; for( j = 0 ; j < N-i ;原创 2017-02-27 21:42:47 · 265 阅读 · 0 评论 -
排序——希尔排序
以前不是很理解希尔排序,现在才弄清楚,希尔排序是基于直接插入排序的,只不过每次增量不同罢了。 #include using namespace std;#define MAX_NUM 100int data[MAX_NUM];//希尔排序void shell_sort(int d , int N ){ int i = 0 ; for( i = 0 ; i<d;原创 2017-02-27 21:29:50 · 311 阅读 · 0 评论 -
排序——插入排序
#include using namespace std;#define MAX_NUM 100int data[MAX_NUM];int main(void){ int N ; int i ; #ifdef DEBUG freopen("input.txt" , "r" ,stdin); freopen("output.txt" , "w" , stdout原创 2017-02-27 20:38:42 · 217 阅读 · 0 评论 -
图 dfs遍历连通块
我们学校oj上的一道题目,数羊群,主要考察连通块问题。菜鸟程序:#include "stdio.h"#include "stdlib.h"#define MAXNUM 125char pic[MAXNUM][MAXNUM] ;int m , n ,idx[MAXNUM][MAXNUM] ;void dfs(int r , int c , int id){ int原创 2015-05-19 15:26:08 · 882 阅读 · 0 评论 -
余数 中国余数定理
在我们学校的OJ系统中刚好看到这道题目,于是尝试着做了一下。其实关键的不是这道题目,而是它涉及到的数据类型。long long类型。关于_int64与long long的区别,请移步至__int64 与long long 的区别。题目:解题思路:其实最基本的解法就是求出第一个数,然后加上这三个数的最小公倍数即可。代码(编译环境gcc(linux i386))#inc原创 2015-02-28 20:08:19 · 791 阅读 · 0 评论 -
动态规划 背包问题
作者:Hawstein出处:http://hawstein.com/posts/dp-knapsack.html声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注明作者及出处。一切都要从一则故事说起。话说有一哥们去森林里玩发现了一堆宝石,他数了数,一共有n个。 但他身上能装宝石转载 2015-02-27 12:22:59 · 454 阅读 · 0 评论 -
最短路径—Dijkstra算法
这是转载的文章,原文见博客园:最短路径—Dijkstra算法和Floyd算法。Dijkstra算法1.定义概览Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构转载 2015-02-22 21:06:40 · 629 阅读 · 0 评论 -
uthash实现分析
uthash简介详见http://troydhanson.github.io/uthash/userguide.html,因为毕业论文中对其作了介绍,为避免查重率上升,这里不再作说明。uthash全部使用了宏对一些函数作了实现。下面对其涉及的数据结构以及增、删、查找与遍历的流程作出介绍。数据结构uthash一共有三个数据类型,分别是UT_hash_handle、UT_has...原创 2018-04-26 16:31:58 · 1282 阅读 · 0 评论