摘要: 希尔排序法 希尔排序又称为缩小增量排序,也属于插入排序类的算法,是对直接插入排序的一种改进。 基本思想就是:将需要排序的序列划分为若干个较小的序列,对这些序列进行直接插入排序,通过这样的操作可使用需要排序的数列基本有序,最后再使用一次直接插入排序。这样,首先对数量较小的序列进行直接插入排序可提高效率,最后对基本有序的序列进行直拦插入排序,也可提高效率,从而使整个排序过程的效率得到提升。... 阅读全文
posted @ 2016-03-27 16:26 青菜蘑菇汤 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 简单选择排序法 选择排序(Selection Sort)的基本思想:对n个记录进行扫描,选择最小的记录,将其输出,接着在剩下的n-1个记录中扫描,选择最小的记录将其输出,……不断重复这个过程,直到只剩一个记录为止。 程序实现: private static void SelectSort(int[] dataArray) { for (... 阅读全文
posted @ 2016-03-22 11:37 青菜蘑菇汤 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 排序(Sort)是计算机程序设计中的一种重要操作,也是日常生活中经常遇到的问题。例如,字典中的单词是以字母的顺序排列,否则,使用起来非常困难。同样,存储在计算机中的数据的次序,对于处理这些数据的算法的速度和简便性而言,也具有非常深远的意义。 排序分为:外部排序 and 内部排序 这里我们讨论内部排序 冒泡排序法 冒泡排序法的基本思想是:对待排序记录关键字从后往前(逆序)进行多... 阅读全文
posted @ 2016-03-21 23:41 青菜蘑菇汤 阅读(464) 评论(0) 推荐(0) 编辑
摘要: 图的遍历 广度优先遍历类似于树的按层次遍历,具体过程如下: (1)从数组中选择一个未被访问的顶点Vi,将其标记为已访问。 (2)接着依次访问Vi的所有未被访问的邻接点,并标记为已被访问过。 (3)从这些邻接点出发进行广度优先遍历,直至图中所有和Vi有路径相通的顶点都被访问过。 (4)重复步骤(1)至步骤(3)的操作,直至所有顶点都被访问过。 图... 阅读全文
posted @ 2016-03-17 15:30 青菜蘑菇汤 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 图 图是一种复杂的非线性结构。 在线性结构中,数据元素之间满足唯一的线性关系,每个数据元素(除第一个和最后一个外)只有一个直接前趋和一个直接后继; 在树形结构中,数据元素之间有着明显的层次关系,并且每个数据元素只与上一层中的一个元素(双亲节点)及下一层的多个元素(孩子节点)相关; 而在图形结构中,节点之间的关系是任意的,图中任意两个数据元素之间都有可能相关。 图G由两个集合V(顶点Ver... 阅读全文
posted @ 2016-03-16 13:13 青菜蘑菇汤 阅读(947) 评论(0) 推荐(0) 编辑
摘要: 线索二叉树 对于n个结点的二叉树,在二叉链存储结构中有n+1个空链域,利用这些空链域存放在某种遍历次序下该结点的前驱结点和后继结点的指针,这些指针称为线索,加上线索的二叉树称为线索二叉树。 例:中序:B F D A C G E H 线索二叉树结构:二叉树的遍历本质上是将一个复杂的非线性结构转换为线性结构,使每个结点都有了唯一前驱和后继(第一个结点无前驱,最后一... 阅读全文
posted @ 2016-03-15 21:43 青菜蘑菇汤 阅读(364) 评论(0) 推荐(0) 编辑
摘要: 层次关系结构:树 树的概念:树是N个节点的集合 A节点称为根节点,A为B C D的父节点,反之就是子节点,B C D分别为各自的兄弟节点 节点的度:一个节点的子树的数量 称为该节点的度 树的度:一棵树中,最大的节点的度称为树的度 叶节点或终端节点:度为0的节点称为叶节点 节点的层次:从根开始定义起,根为第1层,根的子节点为第2层,以此类推 树的高度或深度:树中节点的最大层次 ... 阅读全文
posted @ 2016-03-15 11:41 青菜蘑菇汤 阅读(440) 评论(0) 推荐(0) 编辑
摘要: 串 在应用程序中使用最频繁的类型是字符串。字符串简称串,是一种特殊的线性表,其特殊性在于串中的数据元素是一个个的字符。字符串在计算机的许多方面应用很广。如在汇编和高级语言的编译程序中,源程序和目标程序都是字符串数据。在事务处理程序中,顾客的信息如姓名、地址等及货物的名称、产地和规格等,都被作为字符串来处理。另外,字符串还具有自身的一些特性。因此,把字符串作为一种数据结构来研究。 ... 阅读全文
posted @ 2016-03-11 11:56 青菜蘑菇汤 阅读(569) 评论(0) 推荐(0) 编辑
摘要: 编程判断一个字符串是否是回文。回文是指一个字符序列以中间字符为基准两边字符完全相同,如字符序列“ ACBDEDBCA”是回文。 算法思想:判断一个字符序列是否是回文,就是把第一个字符与最后一个字符相比较,第二个字符与倒数第二个字符比较,依次类推,第 i 个字符与第 n-i个字符比较。如果每次比较都相等,则为回文,如果某次比较不相等,就不是回文。因此,可以把字符序列分别入队列和... 阅读全文
posted @ 2016-03-09 20:32 青菜蘑菇汤 阅读(661) 评论(0) 推荐(0) 编辑
摘要: 后进先出结构:栈 栈(Stack)是操作限定在表的尾端进行的线性表。表尾由于要进行插入、删除等操作,所以,它具有特殊的含义,把表尾称为栈顶( Top),另一端是固定的,叫栈底( Bottom)。当栈中没有数据元素时叫空栈(Empty Stack)。 栈通常记为: S= (a1,a2,…,an),S是英文单词stack的第 1 个字母。a1为栈底元素,an为栈顶元素。这n个数据元素按... 阅读全文
posted @ 2016-03-08 15:26 青菜蘑菇汤 阅读(485) 评论(0) 推荐(0) 编辑