博客专栏  >  综合   >  数据结构与算法

数据结构与算法

主要记录数据结构与算法的学习过程。主要讲解各种数据结构与算法的代码实现。

关注
9 已关注
71篇博文
  • 单链表的直接插入排序

    单链表数据结构typedef struct node{ ElemType data; struct node* next; }Single_List;算法//直接插入排序 Single...

    2017-11-06 19:02
    288
  • 根据中序序列与后序序列构建二叉树

    算法如下: 1)先在后序序列中找到根结点, 2)在中序序列中找到根结点位置,(可以将二叉树分为左子树和右子树) 3)用同样的办法构造左子树 。 4)用同样的办法构造右子树。算法如下:Bi...

    2017-10-23 18:44
    106
  • 判断二叉树是否为二叉搜索树

    概要这题利用二叉搜索树的特性:左子树的所有的关键字小于根节点的关键字,右子树的所有关键字都大于根结点 的关键字。二叉搜索树的中序遍历一定是个有序序列。根据这一特性可以利用二叉树的非递归中序遍历来解答这...

    2017-10-26 20:09
    70
  • 2016年计算机联考真题——寻求最大子集和的差

    概述已知由n(n>=2)个正整数构成的集合A = {ak|0<=k算法思想根据快速排序的思想,把找到最佳的划分,把最小的[n/2]个数放到A1,其余的数放到A2。分组结果即为题意所求。 算法步骤: ...

    2017-09-27 21:35
    191
  • 堆排序

    概述堆排序是利用堆的特性——堆顶元素一定是这个堆的最大值或者最小值,来使选择排序中每趟选择最值变得更加高效的思路。对于堆的相关内容移步我之前的博客:堆算法思想这里我们默认从小到大排序。 思路一:首先...

    2017-09-24 19:26
    131
  • 快速排序

    概述快速排序和归并排序一样也是分而治之策略的应用,基本思路是在数组中选取一个主元,以它为标准,遍历数组把小于它的数放在右边,大于它的数放在左边。递归上述过程直至有序。选主元选主元与划分子集这两个问题关...

    2017-09-24 21:28
    847
  • 归并排序

    概述归并排序是典型的分而治之策略的应用。主要是把一个数组分成若干个子数组进行从小到大的归并直至有序。下面所说的归并排序默认为2路归并排序。递归算法思想1)将数组平分为2等份,对这两个子数组进行从小大到...

    2017-09-24 20:10
    179
  • 希尔排序

    概述由于之前的冒泡排序和插入排序效率低平均复杂度为O(n^2),那么为了加快排序效率,希尔排序就这样被提出来了。只要思想是定义一个增量序列来反复对数组按增量分割成的子序列进行直接插入排序,直至基本有序...

    2017-09-24 16:39
    154
  • 简单排序

    概述排序是数据处理中十分常见且核心的操作,虽说实际项目开发中很小几率会需要我们手动实现,毕竟每种语言的类库中都有n多种关于排序算法的实现。但是了解这些精妙的思想对我们还是大有裨益的。冒泡,插入这三种排...

    2017-09-24 16:03
    130
  • 散列表(下)——分离链接法

    概述在我的上一篇博客散列表(上)——开放定址法 主要讲述了开放定址法的三种思路:线性探测法,平法探测法,双散列法三种思路,以及线性探测的代码实现。在这篇博客里,主要讲解第二中解决冲突的办法——分离链接...

    2017-09-20 21:12
    293
  • 散列表(上)——开放定址法

    概述散列表,又称哈希表,hash表。散列表是一种特殊的数据结构,它同数组、链表以及二叉排序树等相比较有很明显的区别,它能够快速定位到想要查找的记录,而不是与表中存在的记录的关键字进行比较来进行查找。这...

    2017-09-20 19:23
    404
  • 拓扑排序

    概述拓扑排序:如果图中从v到w有有一条有向路径,则v一定要排在w之前。满足此条件的顶点序列称为一个拓扑序。获得拓扑序的过程就是拓扑排序。有向无环图:一个有向图中不存在环,则称为有向无环图,简称DAG(...

    2017-09-16 17:16
    165
  • 最小生成树算法(上)——Prim(普里姆)算法

    概述最小生成树:一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。根据定义可知对于一个有V个顶点的图来说,其最小生成树定包含V个顶点与...

    2017-09-14 21:11
    297
  • 最小生成树算法(下)——Kruskal(克鲁斯卡尔)算法

    概要在我的上一篇文章最小生成树算法(上)——Prim(普里姆)算法 主要讲解对于稠密图较为合适的Prim算法。那么在接下里这片文章中我主要讲解对于稀疏图较为合适的Kruskal算法。Kruskal算...

    2017-09-15 08:40
    269
  • 最短路径算法(上)——迪杰斯特拉(Dijikstra)算法

    概述单源最短路径问题,即在图中求出给定顶点到其它任一顶点的最短路径。在弄清楚如何求算单源最短路径问题之前,必须弄清楚最短路径的最优子结构性质。最短路径的最优子结构性质描述为:如果P(i,j)={Vi…...

    2017-09-12 21:30
    722
  • 最短路径算法(下)——弗洛伊德(Floyd)算法

    概述在这篇博客中我主要讲解最短路径算法中的Floyd算法,这是针对多源最短路径的一个经典算法。对于单源最短路径算法请详见我的另一篇博客:最短路径算法(上)——迪杰斯特拉(Dijikstra)算法弗洛伊...

    2017-09-13 13:48
    2527
  • 汉密尔顿回路问题

    概述这是自己这学期算法课的实验作业。下面给出汉密尔顿图的定义。定义如下:对于连通图G=(V,E),V1,V2,…,Vn是G 的一条通路,且图中任意两个顶点都可达,若 中每个顶点在该通路中出现且仅出现一...

    2017-09-12 10:38
    558
  • 算法训练 最短路

    问题描述 给定一个n个顶点,m条边的有向图(其中某些边权可能为负,但保证没有负环)。请你计算从1号点到其他点的最短路(顶点从1到n编号)。输入格式 第一行两个整数n, m。接下来的m行,每行有三个...

    2017-02-04 22:05
    302
  • 算法提高 队列操作

    问题描述   队列操作题。根据输入的操作命令,操作队列(1)入队、(2)出队并输出、(3)计算队中元素个数并输出。 输入格式   第一行一个数字N。   下面N行,每行第一个数字为操作命令(...

    2017-02-10 15:18
    760
  • 算法提高 盾神与条状项链

    问题描述   有一天,盾神捡到了好多好多五颜六色的珠子!他心想这些珠子这么漂亮,可以做成一条项链然后送给他心仪的女生~于是他用其中一些珠子做成了长度为n的项链。当他准备把项链首尾相接的时候,土方进来...

    2017-02-12 17:59
    233
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部