
数据结构和算法
文章平均质量分 80
FISHBALL1
极客and开源
展开
-
数据结构总览
数据结构总览数据机构是指相互之间存在一种或者多种特定关系的数据元素的集合。数据结构包括三个组成成分:数据的逻辑结构、数据的存储结构、数据的运算结构。 数据的逻辑结构:指反映数据元素之间的逻辑关系的数据结构。包括:1 集合结构 (数据结构中的元素同属一个集合)2 线性结构(数据结构中的元素一对一的相互关系)3 树形结构 (一对多的相互关系)4 图形结构 (原创 2016-07-26 09:13:24 · 594 阅读 · 0 评论 -
二叉树的遍历方法
二叉树的各类遍历方法二叉树的遍历主要有三种,前序、中序、后序;前序遍历:先访问根节点,再访问左子树,最后访问右子树中序遍历:先访问左子树,再访问根节点,最后访问右子树后序遍历:先访问左子树,再访问右子树,最后访问根节点前序遍历:ABDFGHIEC中序遍历:FDHGIBEAC后序遍历:FHIGDEBCA递归实现:原创 2016-08-01 15:01:10 · 1888 阅读 · 0 评论 -
常见的八大排序算法的比较和选择依据
一、八大排序简介:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。面试中常见的是快速排序和归并排序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的原创 2016-09-03 21:25:58 · 4261 阅读 · 2 评论 -
八大排序算法的实现和分析
1.插入排序—直接插入排序(Straight Insertion Sort)算法思想: 每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从后向前扫描,把第三个数按大小插入到有序表中;依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。稳定性分析: 如果碰见一个和插入元素相等原创 2016-09-17 15:57:06 · 975 阅读 · 0 评论 -
数据结构之查找
**数据结构之查找**查找:根据给定的某个值,在查找表中确定一个其关键字等于给定值的记录或数据元素。若表中存在这样的一个记录,则称为查找成功,此时查找的结构为给出整个记录的信息,或指示该 记录在表中的位置;否则称为查找不成功。查找的分类:静态查找表:若对查找表只进行查询和检索操作,称此类查找表为静态查找表。包括四种查找方式:顺序表的查找、有序表的查找(折半查找)、静态数表的查找、索引顺序表的查找(原创 2016-09-17 16:41:02 · 642 阅读 · 0 评论 -
静态查找表的总结
一、顺序查找表1.顺序查找表: 顺序查找的过程为:从表的一端开始扫描,逐个进行记录的关键字和给定值的比较,若某个记录的关键字和给定值比较相等,则查找成功,找到所查记录;反之,若直至表的另一端,其关键字和给定值比较都不等,则表明表中没有所查记录,查找不成功。2 . 算法分析: (1) 在最坏的情况下,顺序查找需要比较 n 次,即 MSL = n 。 (2) 最好的情况是第一个元素即为目标元素,最原创 2016-09-18 10:39:05 · 971 阅读 · 0 评论 -
二叉排序树
动态查找表之二叉排序树二叉排序树又称二叉查找树或二叉搜索树,基本操作有插入、删除、查找等; 在二叉排序树的操作中以二叉链表做存储结构,定义如下: typedef struct node{ KeyType key; /关键字项/ Datatype other; /其他数据项/ struct node * lchild, *原创 2016-11-03 09:57:56 · 516 阅读 · 0 评论