1.数组程序=算法+数据结构;前面学过的if...else...、switch...、while循环、for循环等都是解决流程问题,即算法方面的问题。数据结构:就是把数据按照特定的某种结构来保存,而数组就是一种最基本的数据结构。1)数组的定义:相同数据类型的元素组成的集合,里面只能存放相同..
分类:
编程语言 时间:
2015-05-20 15:01:08
阅读次数:
132
蒟蒻的模板库突然发现模板什么的需要存一下了= =因为蒟蒻并没有全部记住……一些算法/数据结构的模板就放自己其他博文的链接了,另一些会在这里直接写下来。以前的我会慢慢整理……今天先写一个→_→(明显还是在偷懒啊喂!能不能靠谱一点啊?)数学相关: 1 void add(int k,int v){ 2 /...
分类:
其他好文 时间:
2015-05-15 19:50:28
阅读次数:
120
为什么实用二叉树
一,在有序数组中插入删除数据太慢
1插入或者删除一条数据会移动后面的所有数据
二,在链表中查找数据太慢
2查找只能从头或者尾部一条一条的找
用树解决问题
有没有一种插入和删除像链表那么快,查询可以向有序数组一样查得快那样就好了。
数实现了这些特点,称为了最有意思的数据结构之一
树的术语
如下图
树分平衡树和非平衡树
...
分类:
编程语言 时间:
2015-05-15 12:08:28
阅读次数:
189
今天总结循环队列。
什么是队列?
队列跟栈差不多,也是一种操作受限的线性表,只允许在线性表的一端进行插入操作,在另一端进行删除操作。插入的一端称为队尾,删除的一端称为队头,插入操作称为入队,而删除操作称作出出队,不含任何数据元素的队称为空队。队列也有两种实现方式,一种就是顺序存储,用数组实现,另一种是采用链表形式。今天总结顺序存储的循环队列。
什么是循环队列?
循环队列就是,当...
分类:
编程语言 时间:
2015-05-15 09:12:19
阅读次数:
277
分析:直接模拟即可,这里用队列记录访问过的点,栈记录父节点。另外要注意的是在strlen(str)计算字符串的时候要预先计算出来保存在变量中,for直接用,如果for循环直接调用strlen,那么每次都会重新计算,该題字符串的数据量很大,就会存在大量的无用计算,还导致了一次TLE,唉!以前没注意到这里。
#include
#include
#include
#include
using name...
分类:
其他好文 时间:
2015-05-13 14:51:29
阅读次数:
103
分析:可以用线段树做,但感觉麻烦。用优先队列,每次插入时都保留前k个大的数即可。
#include
#include
#include
using namespace std;
int main()
{
int n,k,j,c;
char b[2];
ios::sync_with_stdio(false);
while(cin>>n>>k)
{
priority_queue,g...
分类:
其他好文 时间:
2015-05-10 15:49:40
阅读次数:
118
今天总结静态链表.
什么是静态链表?
我理解静态链表是一种伪链表,因为它没有使用指针。静态链表使用数组实现的,这个数组是一个结构体数组,结构体由数据域和指针域构成,与单链表不同的是,这个指针域并不是指针,而是一个整数,用来指向下一个结点(数组下标)。
静态链表中实际上相当于有两个链表,一个时实际数据所构成的一个链表,另一个是数组中空元素所构成的链表,称为空闲链表或备用链表,用来存放插入进来的...
分类:
编程语言 时间:
2015-05-10 15:44:25
阅读次数:
139
分析:k_d树的模版题,参考了别人的写的;划分的时候采用坐标跨度作为分割依据的效率略比采用树的深度作为划分依据的高;nth_element函数比sort函数的效率高;全部采用getchar和putchar效率也能提高一些。
#include
#include
using namespace std;
struct POINT
{
int x,y;
};
struct K_D_Node
{...
分类:
其他好文 时间:
2015-05-08 13:07:52
阅读次数:
119
全文检索有两个重要的过程:1分词
2倒排索引
我们先看分词算法
目前对中文分词有两个方向,其中一个是利用概率的思想对文章分词。 也就是如果两个字,一起出现的频率很高的话,我们可以假设这两个字是一个词。这里可以用一个公式衡量:M(A,B)=P(AB)/P(A)P(B),其中 A表示一个字,B表示一个字,...
分类:
编程语言 时间:
2015-05-06 17:49:08
阅读次数:
130
今天总结单链表的实现.
什么是链表?
就是采去链式存储结构的线性表,所谓链式存储就好比火车的车厢一样,一节一节的连接起来,成为一个线性表。这种方式采用动态存储分配方式,即程序在运行时根据实际需要申请内存空间,不需要时将内存空间释放掉。
链表用一组任意的存储单元存放线性表中的各个元素,这组存储单元可以是连续的,也可以是不连续的。
什么是单链表?
单链表简单理解就是单向的,就像火...
分类:
编程语言 时间:
2015-05-06 13:23:29
阅读次数:
200