数据结构与算法
文章平均质量分 77
jimmee
这个作者很懒,什么都没留下…
展开
-
开发语言、开发工具、数据结构和算法的关系
在当我们学会了一门语言的时候(也就是说,记住了该语言的语法,词法,还有一些常用的函数),就意味着已经掌握了编写程序的基本工具。无论用的是社么语言,都差不多。只是工具之间有长有短。比如说,delphi,VB之类做windows环境的应用程序很方便;用JAVA开发基于网络的程序很轻松。假如我们用C(C++)写一个记事本软件,估计要写数百行代码才能完成,而且不能保证没有大错误,而用delphi,,或VC转载 2009-10-13 16:26:00 · 845 阅读 · 0 评论 -
基本数据结构的说明(四)
4.图图(Graph)G由两个集合V(Vertex)和E(Edge)组成,记为G=(V,E),其中V是顶点的有限集合,记为V(G),E是连接V中两个不同顶点(顶点对)的边的有限集合,记为E(G)。图一般可以采用三种方式来表示:使用一个二维数组;使用邻接表;使用边数组。图的遍历一般有深度优先的方式和广度优先的方式。所谓深度优先:从图中某个初始顶点v出发,首先访问初始顶点v,然后选择原创 2009-11-06 00:11:00 · 583 阅读 · 0 评论 -
基本数据结构的说明(三)
3.树的说明树:T={K,R}。K是包含n个结点的有穷集合(n>0),关系R满足以下条件: (1)有且仅有一个结点k0∈K,它对于关系R来说没有前驱结点,结点k0称作树的根。 (2)除结点k0外,K中的每个结点对于关系R来说都有且仅有一个前驱结点。 (3)K中每个结点对于关系R来说可以有多个后继结点。我这里主要讨论的是二叉树,因为这个是原创 2009-11-05 20:51:00 · 491 阅读 · 0 评论 -
基本数据结构的说明(二)
2.栈和队列所谓的栈,是一个含有至少两个基本操作的抽象数据类型:插入新的元素;删除最近时间插入的元素。à遵循FILO(First in,last out,先进后出)的原则。所谓的队列,也是一个含有至少两个基本操作的抽象数据类型:插入新的元素;删除最久时间插入的元素。à遵循FIFO(First in,first out,先进先出)的原则。关于栈和队列的具体实现,我们即可以借助于数组原创 2009-11-05 01:58:00 · 652 阅读 · 0 评论 -
基本数据结构的说明(一)
我这里主要是对基本的数据结构进行说明,包括数组,链表,栈,队列,树,图。1.数组和链表的说明数组的这个可以说是大家最广泛使用的数据结构了。数组的最主要的特点是可以支持随机存取,也就是说,我们查询一个值时,可以在O(1)时间内完成。如果我们在数组中删除一个元素,一般都是把后面元素向前移动,返回被删除的元素,如果插入一个新元素,我们把元素向后移动,留出一个空位,插入新元素。可见,删除和插原创 2009-11-05 01:40:00 · 1212 阅读 · 0 评论 -
排序算法(三)
如果我们不采用比较的方式来实现排序,可以采用其他方式实现排序么?是的,可以。1.桶排序例如,我们有一个数组,里面的元素如下:索引:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14元素:0 3 3 0 1 1 0 3原创 2009-11-04 02:36:00 · 563 阅读 · 0 评论 -
排序算法(二)
接下来,我准备说一下快速排序,归并排序和堆排序。在讲快速排序和归并排序前,首先说一下分而治之的思想,就是说,先将要处理的问题简化,即将复杂的大问题分解为简单的小问题,然后分而治之。一般步骤如下:1)将问题分解为小的子问题。每个子问题与大问题同型,但规模更小。2)递归解决这些子问题。3)将子问题的解答合并获得大问题的解答。在这个策略下,实际编程时也是将工作分为这三步。大家要理解的是这种思想原创 2009-11-03 22:29:00 · 778 阅读 · 0 评论 -
算法:元素选择问题总结
元素选择问题注:中位数:中间大小的数 ;上取整用| |表示,下取整用[ ]表示1.选最大输入:n个不等的数输出:max算法1 Findmax1. max←L[1]2. for i←2 to lenth[L] do if max then max←L[i]3. return max算法最坏情况下的时间复杂性为O(n)结论:在n 个数的数组中转载 2009-10-13 17:11:00 · 1169 阅读 · 0 评论 -
李开复:算法的力量
算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时要求的编程语言五花八门就产生了一种误解,认为学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实大家都被这些公司误导了。编程语言虽然该学,但是学习计算机算法和理论更重要,因为计算机算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的是那些算法和理论,转载 2009-10-13 16:38:00 · 426 阅读 · 0 评论 -
排序算法(一)
一般来说,排序算法有10种,今天先说4种,并给出基本的代码。如有错误,欢迎大家指正。如果大家比较忙,忙着去泡妞的话,可以直接跳到最后看我的小结部分。为了便于后面的讨论和理解,这里先做一个约定,就是把你要排序的元素假想为大小不一的一些球,这些球都放在一个容器里。排序的过程是把这些球拿出来按照一个指定的顺序的摆放(这里指定的顺序我们先定为升序,倒序是一回事)。同时预先定义两个方法,假定我们要原创 2009-11-02 19:47:00 · 572 阅读 · 0 评论