数据结构和算法
lostinai
这个作者很懒,什么都没留下…
展开
-
数据结构教程
第一课:数据结构的基本概念和术语 第二课:抽象数据类型的表示与实现 第三课:算法及算法设计要求 第四课:算法效率的度量和存储空间需求 第五课:线性表的类型定义 第六课:线性表的顺序表示和实现 第七课:实验一线性表的顺序存储实验 第八课:线性表的链式表示与实现 第九课:循环链表与双向链表 第十课:栈的表示与实现 第十一课:栈的应用 第十二课:实验二循环链表实验 第十三课:队列转载 2012-10-15 13:54:50 · 2323 阅读 · 0 评论 -
几道经典的面试题
1、怎么判断链表里有没有环? 这个题目网上,书上都有答案。设置两个指针,刚开始都指向链表的头部,然后一个指针一次跑一步,另一个指针一次跑两步,每移动一次就判断他们是不是相等,如果相当,则链表中有环,并且交点就在现在两个指针所指的位置。 但是如果事先没有看到这个解答,在面试官面前能不能回答回来呢? 当然此题也可以用一个指针,再用一个足够大的数组把指针所遍历的结点的地址都保存起来,并且指针每移动转载 2012-10-15 13:58:36 · 539 阅读 · 0 评论 -
递归算法
http://blog.csdn.net/liuben/article/details/2223079 递归是设计和描述算法的一种有力的工具,它在复杂算法的描述中被经常采用。采用递归描述的算法通常有这样的特征:为求解规模为N的问题,设法将它分解成规模较小的问题,然后从这些小问题的解方便地构造出大问题的解,并且这些规模较小的问题也能采用同样的分解和综合方法,分解成规模更小的问题,并从这些更小问题的转载 2012-10-15 14:00:29 · 580 阅读 · 0 评论 -
递归算法探讨
递归算法探讨 递归在计算机科学和数学中是一个很重要的工具, 它在程序设计语言中用来定义句法, 在数据结构中用来解决表或树形结构的搜索和排序等问题。另外, 递归在计算方法、运筹学模型、行为策略和图论的研究中都得到了广泛的应用。 1、 递归的概念 若一个对象部分地包含它自己, 或用它自己给自己定义, 则称这个对象是递归的; 在程序设计中, 若一个过程直接地或间接地调转载 2012-10-15 14:05:26 · 549 阅读 · 0 评论 -
数据结构与算法
第一章 一.算法的基本概念 计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。 1.算法的基本特征:可行性,确定性,有穷性,拥有足够的情报。 2.算法的基本要素:算法中对数据的运算和操作、算法的控制结构。 3.算法设计的基本方法:列举法、归纳法、递推、递归、减半递推技术、回溯法。 4.算法设计的要求:正确性、可读性、健壮性、效率与低存储量需求 二.算法的复杂度 1.算转载 2012-11-26 11:38:29 · 613 阅读 · 0 评论 -
Java常用排序算法/程序员必须掌握的8大排序算法
http://blog.csdn.net/a125138/article/details/7752973 本文由网络资料整理而来,如有问题,欢迎指正! 分类: 1)插入排序(直接插入排序、希尔排序) 2)交换排序(冒泡排序、快速排序) 3)选择排序(直接选择排序、堆排序) 4)归并排序 5)分配排序(基数排序) 所需辅助空间最多:归并排序 所需辅助空间最少:堆排序 平均转载 2012-12-17 13:45:21 · 470 阅读 · 0 评论 -
java c++数据结构题总结
一.判断链表是否存在环型链表问题: 说明:判断一个链表是否存在环,例如下面这个链表就存在环,n1-->n2-->n3-->n4-->n5-->n2,环的开始结点是n5 解法:这里有个比较简单的解法:设两个指针p1,p2,每次循环p1向前走一步,之向前走两步,直到p2碰到NULL指针(无环)或两个指针相等结束循环算法(有环),即如果两个指针相等则说明存在环。 代码如下:转载 2013-01-11 23:16:03 · 474 阅读 · 0 评论 -
各种排序算法的分析及java实现
http://www.cnblogs.com/liuling/p/2013-7-24-01.html 排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。 内排序有可以分为以下几类: (1)、插入排序:直接插入排序、二分法插入排序、希尔排序。 (2)、选择排序:简单选择排转载 2015-11-24 10:07:24 · 304 阅读 · 0 评论