![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
cyd_shuihan
这个作者很懒,什么都没留下…
展开
-
BFS宽度优先搜索算法
1.前言广度优先搜索(也称宽度优先搜索,缩写BFS,以下采用广度来描述)是连通图的一种遍历策略。因为它的思想是从一个顶点V0开始,辐射状地优先遍历其周围较广的区域,故得名。 一般可以用它做什么呢?一个最直观经典的例子就是走迷宫,我们从起点开始,找出到终点的最短路程,很多最短路径算法就是基于广度优先的思想成立的。算法导论里边会给出不少严格的证明,我想尽量写得通俗一点,因此采用一些直观的讲转载 2015-07-12 14:59:24 · 490 阅读 · 0 评论 -
图的邻接矩阵实现
最近在学数据结构,自己实现了下图的邻接矩阵实现,对于邻接表实现方法类似,此处把代码贴上://"MyGraph.h"#include #include using namespace std;typedef char VertexType; //顶点类型,用户自定义typedef int EdgeType; //边上权值类型,用户自定义#define MAXVEX 100原创 2016-06-04 18:07:36 · 680 阅读 · 0 评论 -
遍历二叉树的各种操作(非递归遍历)
原文地址:http://blog.csdn.net/hackbuteer1/article/details/6583988 先使用先序的方法建立一棵二叉树,然后分别使用递归与非递归的方法实现前序、中序、后序遍历二叉树,并使用了两种方法来进行层次遍历二叉树,一种方法就是使用STL中的queue,另外一种方法就是定义了一个数组队列,分别使用了front和rear两个数组的下标转载 2016-06-20 17:57:58 · 302 阅读 · 0 评论 -
笔试编程题
设计一种排序方式,按照数字出现的频率降序排序,频率相同的元素,其排列顺序同他们在给定列表中出现的顺序相同如:输入 len=5; arr=[1 3 2 1 3]输出:1 1 3 3 2int* SortByNum(int* arr, int len){ if(arr == NULL || len <= 0) return NULL; map m; vector vec; i原创 2016-08-31 18:08:03 · 707 阅读 · 1 评论 -
百度+搜狗编程题
距离的总和题目描述:定义两个大于2的偶数之间的距离,为这两个数之间质数的个数,从小到大输入n个大于2的偶数,输出所有数两两之间距离的总和(应该有n*(n-1)/2个距离,输出总和就好)。输入:第一行是输入偶数的个数,最小为2,最大可能到几万,之后每一行为一个偶数,最小为4,最大可能是几百万,不重复的升序排列。输出:输入数据两两间距离的总和,这应该是一个不小于0的整数。样例输入:原创 2016-09-14 16:57:24 · 351 阅读 · 0 评论 -
排序算法
#include #include using namespace std;//打印函数void Print(int A[], int len){ for(int i = 0; i < len; i++) cout<<A[i]<<" "; cout<<endl;}//插入排序void InsertSort(int A[], int N){ for(int p = 1原创 2016-08-25 00:29:45 · 586 阅读 · 0 评论 -
链表快慢指针应用
链表中倒数第k个结点本题从1开始计数,即链表的尾结点是倒数第一个结点,例如链表从头结点依次是1,2,3,4,5,6,则倒数第3个结点是4struct ListNode{ int val; ListNode* next;};利用快慢指针解题,先让一个指针走k-1步,然后两个指针同时走,当快指针走到链表尾部时,慢指针指向的位置就是倒数第k个结点所在位置ListNod原创 2016-09-04 09:36:59 · 359 阅读 · 0 评论 -
字符串排列组合
字符串的排列题目描述: 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。题目分析: 考虑把这个复杂的问题分解成为小的问题。整个字符串的排列,可以看成两个部分:首先,求所有可能出现在第一个位置的字符然后,固定第一个字符,求后面所有字符的排列。这原创 2016-09-05 16:43:31 · 343 阅读 · 0 评论