
数据结构与算法
Pigeon.C
小小的天,有大大的梦想,重重的壳裹着轻轻的仰望。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Hash
Jenkins hash算法, memcached使用了此算法,普遍的被凯源项目所使用,是很好的ahsh算法之一。Jenkins hash,可能是目前能看到的最好的hash算法之一,可以产生很好的分布,缺点是相比其他常见的hash算法更耗时。可以考虑用于hash表的open addressing实现上。如果想了解细节的话,可以去Bob Jenkins的站点看一看。http://burtleburtle.net/bob/hash/typedef unsigned long int u4;转载 2021-03-24 14:07:19 · 260 阅读 · 0 评论 -
字符串匹配
KMP是一种模式匹配算法,什么是模式匹配呢?就是,现有一个模式串(字符串),要在另一个主串中查找是否存在与模式串相等的子串(主串中任意连续字符组成的子序列)。该算法的用处广泛,是正则表达式的基础。例如,有一个字符串为"ababcabcacbab",我们想知道该字符串中有没有一个"abcac"的字符串,这就叫模式匹配。普通模式匹配算法经典的模式匹配,是让模式串的首字符从主串的首字符开...转载 2020-02-24 15:45:18 · 244 阅读 · 0 评论 -
八大排序算法
由此可见,排序算法尤为重要。以下介绍八大排序算法,都是从小到大排序。1. 插入排序i从1到n-1,每次将第i位的数插入到前面已排好序的序列中。插入的方法为:将i与i-1位置的数比较,i小则交换并i--,i大则停止插入。// 插入排序void InsertSort(int *num, int n, int start, int grep){ // 对第i个数...转载 2020-02-24 15:39:31 · 537 阅读 · 0 评论 -
行列均递增的二维数组元素查找
问题描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路:每次都是从右上角的那个数开始比较,如果相等则标记退出;如果右上角大于 目标值则去除最后一列 ,因为最后一列的值肯定比右上角还要大;如果小于,去除最上面一行,因为右上角已经是这一行的最原创 2017-01-08 00:37:57 · 461 阅读 · 0 评论 -
替换字符串中空格为%20
/*题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。*/#include #include #include #include using namespace std;/*方法一:创建足够长的新存储空间原创 2017-01-08 21:00:10 · 250 阅读 · 0 评论 -
翻转链表
#include #include #include using namespace std;struct ListNode{int val;struct ListNode *next;ListNode(int x):val(x),next(NULL){}};/*循环方式翻转链表*/ class Solut原创 2017-01-08 22:44:49 · 175 阅读 · 0 评论 -
根据二叉树 前序和中序 重建原二叉树
#include #include using namespace std; struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), righ原创 2017-01-09 14:47:59 · 272 阅读 · 0 评论