上一页 1 2 3 4 5 6 7 ··· 28 下一页
摘要: 许多实际问题抽象出来的数据结构往往是二叉树的形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。 二叉树的定义 1.二叉树的递归定义 二叉树(BinaryTree)是n(n≥0)个结点的有限集,它或者是空集(n=0),或者由一个根结点及两棵互不 阅读全文
posted @ 2013-12-31 19:36 博园少主 阅读(493) 评论(0) 推荐(0) 编辑
摘要: 广义表 广义表的定义 广义表是线性表的推广。 广义表一般记作LS=(d0,d1,...dn-1)当广义表LS非空时,称第一个元素d0为表头(Head),称其余元素组成的表(d1,d2,...dn-1)是LS的表尾(Tail)。显然,广义表的定义是一个递归的定义,因为在描述广义表时又用到了广义表的概念。下面列举一些广义表的例子。 1) A=( ); A是一个空表,它的长度为0。 2) B=( e ); 广义表B只有一个单元e,B的长度为1。 3) C=( a,( b,c,d ) ); 广义表C的长度为2,两个元素分别为单元素a和子表( b,c,d )。 4) D=( A,B,C ); ... 阅读全文
posted @ 2013-12-31 19:12 博园少主 阅读(708) 评论(0) 推荐(0) 编辑
摘要: 线性表的基本概念1.线性表的定义: 线性表(linear list)是具有相同类型的n(n>=0)个数据元素a0,a1,...an-1 组成的有限序列。其中n为线性表的长度,当n=0,时成为空线性表,n>0,成为非空表在数学上,表现为:数据之间具有线性关系,一对一,一对多等2. 线性表中的数据元素要求具有相同类型。3.特征: (1) 有且仅有一个开始节点a0,他没有直接前驱,只有一个直接后继 (2) 有且仅有一个终端节点an-1,它没有直接后继,只有一个直接前驱 (3) 其他节点都有一个直接前驱和直接后继 (4) 元素直接为一对一的线性关系4、线性表中数据元素的相对位置是确定的,. 阅读全文
posted @ 2013-12-31 19:07 博园少主 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 简介堆栈和队列都属于线性结构,是两种在运算上受到某些限制的特殊线性表,他们比一般线性表更简单,被广泛应用于类型的程序设计中,可以用来存放许多中间信息,在系统软件设计以及递归问题处理方面都离不开堆栈和队列。栈栈的操作原则是:先进后出,后进先出二、栈的特点 根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除。 也就是说,栈是一种后进先出(Last In First Out)的线性表,简称为LIFO表。三、栈的运算 1.初始化栈:INISTACK(&S) 将栈S置为一个空栈(不含任何元素)。 2.进栈:PUSH( 阅读全文
posted @ 2013-12-31 18:52 博园少主 阅读(411) 评论(0) 推荐(0) 编辑
摘要: (请网友结合前面的排序基本思想来理解排序的稳定性(8种排序的基本思想已经在前面说过,这里不再赘述)不然可能有些模糊) (1)直接插入排序:一般插入排序,比较是从有序序列的最后一个元素开始,如果比它大则直接插入在其后面,否则一直往前比。如果找到一个和插入元素相等的,那么就插入到这个相等元素的后面。插入 阅读全文
posted @ 2013-12-31 18:13 博园少主 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 排序算法所有排序算法汇总:http://en.wikipedia.org/wiki/Sort_algorithmcounting sort 资料 :http://www.cs.miami.edu/~burt/learning/Csc517.091/workbook/countingsort.html基数排序(radix sort) 资料:http://caterpillar.onlyfun.net/Gossip/AlgorithmGossip/RadixSort.htm排序算法可以根据不同的特性划分为不同的类别,这些特性有: + 是否是 comparison-based + 时间复杂度... 阅读全文
posted @ 2013-12-31 18:00 博园少主 阅读(165) 评论(0) 推荐(0) 编辑
摘要: C 快速排序 快速排序描述1.从数列中挑出一个元素,称为 "基准"(pivot)2.重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。3.递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。示例代码示例代码为C语言,输入参数中,需要排序的数组为arr[],取出一个元素为pivot,并根据 pivot值,将数组按照大于pivot和小于pivot分为两个区域,递归完成排序。复制代码 1 #include 阅读全文
posted @ 2013-12-31 17:42 博园少主 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 排序简介排序简介 排序是数据处理中经常使用的一种重要运算,在计算机及其应用系统中,花费在排序上的时间在系统运行时间中占有很大比重;并且排序本身对推动算法分析的发展也起很大作用。目前已有上百种排序方法,但尚未有一个最理想的尽如人意的方法,本章介绍常用的如下排序方法,并对它们进行分析和比较。1、插入排序(直接插入排序、折半插入排序、希尔排序); 2、交换排序(起泡排序、快速排序); 3、选择排序(直接选择排序、堆排序); 4、归并排序; 5、基数排序;我们所练习的排序主要是内部排序,所谓内部排序,就是整个排序过程都在内存进行的排序,称为内部排序;反之,若排序过程中要进行数据的内、外存交换,则称之为 阅读全文
posted @ 2013-12-31 17:30 博园少主 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 排序集锦http://www.cnblogs.com/longyi1234/archive/2010/03/22/1691904.html关于排序,似乎很简单的很常见的概念,却蕴含着很多技术,下面是从不同的角度,对排序的总结:1 按照排序特性分类首先按照排序本身的操作特性可以分为下面几种:插入排序 直接插入排序(Insert Sort) O(n^2)(稳定) 折半插入排序(Binary Insert Sort)(不稳定) 希尔排序(Shell Sort)(不稳定)交换排序 冒泡排序(Bubble Sort) O(n^2)(稳定) 快速排序(Quick Sort)?? O(nlogn)(不稳定) 阅读全文
posted @ 2013-12-31 17:26 博园少主 阅读(170) 评论(0) 推荐(0) 编辑
摘要: http://jsrun.it/norahiko/oxIy 阅读全文
posted @ 2013-12-31 17:23 博园少主 阅读(82) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 28 下一页