会员
周边
众包
新闻
博问
闪存
赞助商
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
谭兄
导航
博客园
首页
新随笔
联系
订阅
管理
公告
上一页
1
2
3
4
5
6
下一页
2016年6月23日
快速排序
摘要: 快速排序比一般的排序算法都要快,它是原地排序(只需要一个很小的辅助数组),且将长度为N的数组排序所需的时间与NlgN成正比. 基本算法 快速排序也是一种分治算法,它将一个数组分成两部分分别排序,它和归并排序是互补的. 归并排序是将一个数组分成两个子数组分别排序,并将有序子数组归并以将整个数组排序;而
阅读全文
posted @ 2016-06-23 11:44 谭兄
阅读(191)
评论(0)
推荐(0)
编辑
2016年6月22日
归并排序
摘要: 归并排序:要将一个数组排序,可以先(递归的)将它分成两半分别排序,然后将结果归并起来得到一个有序数组,它最吸引人的地方是能够保证将任意长度为N的数组排序所需的时间复杂度和NlogN成正比. 原地归并排序 实现归并排序简单粗暴的办法是创建一个新数组,然后将两个有序输入数组的按照大小一个个从小到大放进这
阅读全文
posted @ 2016-06-22 15:57 谭兄
阅读(261)
评论(0)
推荐(0)
编辑
2016年6月21日
初级排序算法
摘要: 我们关注的主要对象是重新排列数组元素的算法,其中每一个元素都有一个主键.排序算法的目标是将所有的主键按某种方式排列.排序后索引较大的元素大于等于索引较小的元素主键. 在java中,元素通常是对象,对主键的抽象描述则是通过一种内置的机制来完成的. 下面是排序算法类模版 我们实现CompareTo接口保
阅读全文
posted @ 2016-06-21 22:06 谭兄
阅读(227)
评论(0)
推荐(0)
编辑
2016年6月20日
并查集(union-find)算法
摘要: 动态连通性 、 假设程序读入一个整数对p q,如果所有已知的所有整数对都不能说明p和q是相连的,那么将这一整数对写到输出中,如果已知的数据可以说明p和q是相连的,那么程序忽略p q继续读入下一整数对. 为了实现这个效果,我们设计并查集这种数据结构来保存程序已知的所有整数对的足够多的信息,并用它们来判
阅读全文
posted @ 2016-06-20 16:55 谭兄
阅读(4647)
评论(0)
推荐(0)
编辑
2016年6月18日
指针数组和数组指针的区别
摘要: 这两个概念很模糊,今天遇到理解了好久. 指针数组:是一个数组,里面存放的每个元素都是一个地址. int* a[4] 表示a数组中每个元素都是int型的指针. int *a[4] 和 int *(a[4])是一样的,因为[]优先级比*要高. 数组指针:是一个指针,指向数组元素的首地址. int *(a
阅读全文
posted @ 2016-06-18 21:18 谭兄
阅读(187)
评论(0)
推荐(0)
编辑
2016年6月16日
Dijkstra的双栈算术表达式的求值算法
摘要: 例如需要计算 ( 1 + ( ( 2 + 3 ) * ( 4 * 5 ) ) ) 我们以字符串的形式输入该表达式,利用两个栈来完成这个操作,其中一个栈保存运算符,一个栈保存操作数,过程是这样的: 表达式由括号,运算符号,操作数(数字)组成,从左到右处理这四种情况. 将操作数压入操作数栈. 将运算符压
阅读全文
posted @ 2016-06-16 18:42 谭兄
阅读(665)
评论(0)
推荐(0)
编辑
2016年6月5日
无向图的深度优先搜索和广度优先搜索
摘要: 图的定义:由一组顶点和一组能够将两个顶点相连的边组成的数据结构. 图的常用表示方法 邻接矩阵:使用矩阵表示,当顶点v和w连接在一起时,就把v行w列定义为true,否则为false,但大量数据时所需空间不能满足. 边的数组:使用一个Edge类,含有两个变量,对应边上的顶点. 邻接表数组:以顶点为索引的
阅读全文
posted @ 2016-06-05 22:41 谭兄
阅读(2656)
评论(0)
推荐(0)
编辑
2016年5月29日
散列表简介
摘要: 散列表也叫哈希表,是一种根据关键字直接访问内存存储位置的数据结构,它是用一个数组实现的无序符号表.将键作为数组的索引而数组中键i处存储的就是它对应的值,这样就可以实现快速访问任意键的值.散列表是算法在时间和空间上做出权衡的经典例子. 散列表的查找算法分为两步: 1.用散列函数将键转化为数组索引,可能
阅读全文
posted @ 2016-05-29 15:14 谭兄
阅读(281)
评论(0)
推荐(0)
编辑
2015年12月10日
顺序表的基本操作
摘要: #include#define MAXSIZE 100//顺序表的结果定义typedef struct{ int data[MAXSIZE]; int num;}SeqList; //建立顺序表void CreateSeqList(SeqList *S){ S->num = 0;}...
阅读全文
posted @ 2015-12-10 21:26 谭兄
阅读(245)
评论(0)
推荐(0)
编辑
单链表的基本操作
摘要: 链表是一种递归的数据结构,它或者为空,或者指向一个和节点的引用,该节点包含一个元素和一个指向另一条链表的引用.链表可以作为数组的一种重要替代. 我们用一个嵌套类来定义节点的抽象数据类型 其中Item表示数据变量,Node表示节点变量. 接下来我们就可以构造链表了,首先创造节点 然后为每个节点赋值,设
阅读全文
posted @ 2015-12-10 21:05 谭兄
阅读(478)
评论(0)
推荐(0)
编辑
上一页
1
2
3
4
5
6
下一页