您的位置:首页 > 理论基础 > 数据结构算法

【软考】——数据结构与算法基础

2015-09-08 10:49 274 查看

    前言

    刚开始接触软考视频,第一章的内容和《数据结构导论》书中讲解的基本上是一样的,因为已经把《数据结构导论》看过两遍,对于软考视频第一章看起来相对省力的多。

    本章节内容在平时也已经很熟悉,常用的数据结构和算法总的来说内容不少,但根本内容不难理解,对其整体内容做个整理。

    学习大纲

    视频起始给了一张总结性的图片,概括了基本数据结构的整体学习内容:



    具体内容

      线性表

      线性表按存储结构主要划分为两部分:顺序表和链表;
      链表类别:单链表、循环链表、双链表;
      对顺序表和链表分别在空间性能和时间性能作比较,相对来说,各种链表各有各的优点,各有各的好处,使用时根据需求合理选择即可。

      树和二叉树

      1.二叉树,又称二叉排序树;
      2.基本操作:查找、插入、删除;
      3.二叉树分类:最优二叉树——哈夫曼树、线索二叉树、平衡二叉树;
      4.二叉树的特性:在二叉树的第i层上最多有2^(i-1)个节点(i>=1);
                      深度为k的二叉树最多有2^k-1个节点(k>=1);
                      对任何一棵二叉树,如果其叶子结点数为n0,度为2的结点数为n2,则n0=n2+1。

      图

      1.图由两个集合V和E构成,V是有限的非空顶点集合,E是用顶点对表示的边集合。
      2.基本概念:无向图和有向图,度(入度和出度),子图,完全图,路径,连通图和连通分量,邻接矩阵和邻接表。
      3.图的遍历:分为深度优先和广度优先。深度优先是确定出发点V,找到与V相邻的未访问过的所有顶点,选定顶点W访问,继续寻找W相邻的未访问的顶点,依次向下访问;广度优先是确定出发点V,找到所有与V相邻的未访问过的顶点,依次访问,在把与V相邻的顶点全部访问过之后,再向下一层访问,直到所有顶点都被访问完毕。
      图示说明:



      4.最小生成树
        普里姆算法:确定一个顶点,依次寻找最小边,直到将所有顶点都连接,寻找期间保证不重复连接顶点;
        克鲁斯卡尔算法:取出所有顶点,在所有边中选择权值最小的,连接,并以此在未连接的顶点和已连接的顶点间依次寻找最小权值边,直至所有顶点被连接。

      5.排序算法(重点)
        本节所讲排序全部属于内部排序,可分为:插入排序(直接插入排序、希尔排序),选择排序(简单选择排序、堆排序),交换排序(冒泡排序、快速排序),归并排序,基数排序。
        各类排序算法时间复杂度和空间复杂度对比表:



      哈希表

      又称散列表、杂凑表;是一种查找技术,具有极高的查找效率;
      对于Hash函数的构造,没有特定的要求,所以方法很多,了解什么样的哈希函数才叫好的Hash函数,这样就便于我们根据实际情况来构造合理的Hash函数了。
      通过视频对哈希表的学习效果并不是很好,还有待和小伙伴们一起研究!

      查找算法

      查找算法有三种方法: 顺序查找、二分查找和分块查找。
      顺序查找:顾名思义就是从表的一端开始,按顺序比对当前结点与关键字是否相等的一个查找方式。
      二分查找:折半查找法,这种方法的查找效率高,但要求序列必须是有序的。
      分块查找:用图来说明
        


      在索引表中分为两行,第一行为块的最大关键字,即所分出来的块中最大的值;第二行为块的起始地址,即每个块中第一个值得序列编号。
      三种方法的比较:
 


    小结

    软考视频的第一章差不多就是这些内容,因为之前很熟悉,看的时候相对来说也就省劲多了。学习就是不断地重复,因为了解,才能更好的理解。

    软考第一阶段的第二部分正式开始了,有个好的开头,用心做就好!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据结构 软考