数据结构
文章平均质量分 58
hondely
这个作者很懒,什么都没留下…
展开
-
hdu 1394 Minimum Inversion Number
<br />题意是,给一个长度为n的序列(n<=5000),由0~n-1的数字组成。每次把最左边的数挪到最右边形成一个新的序列。那么一共可以形成n个序列。求这n个序列里面最小的逆序数是多少。<br />我用数组a[0~n-1]来存原始数据。只需求出原始序列的逆序数sum,然后对于a[i](0<= i <n-1),每挪一个,用sum减去挪之前它右边比它小的数的个数(也就是a[i])、再用sum加上挪之后左边比它大的数的个数(也就是n-a[i]-1),就是挪了a[i]的逆序数<br />source code1原创 2010-10-28 21:26:00 · 689 阅读 · 0 评论 -
ACM-ICPC必备之 线段树
http://www.dzkjzz.com/ShowArticle.asp?id=105处理涉及到图形的面积、周长等问题的时候,并不需要依赖很深的数学知识,但要提高处理此类问题的效率却又十分困难。这就需要从根本上改变算法的基础——数据结构。这里要说的就是一种特殊的数据结构——线段树。我们往往遇到这样的问题,研究的对象是数量庞大的线段,普通的方法往往是O(n^2),的,而用线段树我们可以做到O(nlogn)。线段树是一棵完全二叉树,它的根节点代表一个区间[a,b],左结点是[a,(a+b) div 2],右结转载 2010-10-31 20:39:00 · 2672 阅读 · 0 评论 -
快速排序一
快速排序的思路是这样的 一般的思路 以第一个元素为关键字key,把数分成两部分,一部分小于关键字的,一部分大于关键字的,主要的在于关键字的变化例如:输入:8 49 38 65 97 76 13 27 49 先是以49为关键字,l=0....n-原创 2011-10-11 03:06:32 · 893 阅读 · 0 评论 -
括号匹配检验 数据结构运用
在这里 我 只说下 简单的思路把下面的 字符存下来 ( ) [ ] ( = ) [ = ]只要 满足 上面的 字符 '=' 就出栈 如果不是 就进栈 最后判断 栈 是否为空 就行了原创 2011-10-19 20:05:26 · 1372 阅读 · 0 评论 -
栈实现的计算器 数据结构运用
这个 代码 只能实现是一个字符 一个字符输入 具体实现 比如 执行的18*6的这样的,我们可以用输入字符串的形式输入遇到操作符就 进OPTR栈 否则a=ch[i]-'0';然后再 将a 压入栈 具体实现 有兴趣的可以自己实现 有问题 请留言我们来看下 实现这个部分的 源代码double Run(){ double ans=原创 2011-10-19 19:20:22 · 7199 阅读 · 1 评论 -
链表的插入 删除 排序 倒叙
#include using namespace std;#include #include #include #include #include struct Node{ int data; struct Node *next;};Node *Creat(){ Node *head,*p,*s; head=(Node *)malloc(sizeof(Node)原创 2012-10-26 14:21:29 · 2801 阅读 · 1 评论